* Fix images not loading on android"
* Update app/components/expo_image/index.tsx
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update snapshots and remove accept
* Fix 16KB page size patch failing due to stale diff context (#9555)
The expo_image/index.tsx hunks in 9325-full.diff were generated before
the NetworkManager/header-handling code was added to ExpoImage. The stale
context lines caused patch's fuzzy matching to apply ExpoImage hunks to
ExpoImageBackground instead, then ExpoImageBackground hunks failed
because those sections were already modified.
Regenerated the expo_image diff hunks to match the current file state
with proper context lines for both ExpoImage (with header handling) and
ExpoImageBackground components.
https://claude.ai/code/session_01SGXWQzxrcPpWsq2YrjoUwd
Co-authored-by: Claude <noreply@anthropic.com>
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Your Name <larkox@gmail.com>
Co-authored-by: Mattermost Build <build@mattermost.com>
Co-authored-by: Claude <noreply@anthropic.com>
* feat: ai rewrite
* feat: allow crating content apart from editing it
* feat: feature parity with webapp
* feat: feature parity with webapp
* chore: fixed padding
* map ux to webapp
* refactored ai rewrite logic to separate package
* chore: tests and lint
* Update app/products/ai/rewrite/screens/options/options.tsx
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* rewrite post editor animation
* i18n
* ui feedback, centered icon and less top padding
* chore: lint
* Consolidate @ai product into @agents
Move all rewrite functionality from app/products/ai/ into
app/products/agents/ to unify under a single namespace.
- Add rewrite types, store, hooks, components, and screens to agents
- Merge AI client methods into agents client
- Update screen constants (AI_* -> AGENTS_*)
- Update all consumer imports
- Remove AI state from EphemeralStore
- Remove @ai path alias from config
- Delete app/products/ai/ directory
* refactor: load screens from product package
* refactor: move detection logic to the agents pacakge
* refactor: remove "backwards compatibility"
* refactor: move hooks to proper package
* refactor: styles
* refactor: remove unneedd position attribute
* refactor: remove unneeded cancel animation calls
* refactor: "backwards compat"
* refactor: optimize renderContent with useCallback for performance
* refactor: rename variable to avoid confusion
* refactor: update handleRewrite to use async/await for better error handling
* refactor: simplify handleRewrite by always dismissing keyboard
* refactor: use hook, always all keyboard.dismiss
* chore: enhance AgentSelector component with FlatList support
* feat: add rewriteMessage function for AI message rewriting and integrate it into useRewrite hook
* refactor: simplify message length calculation in useHandleSendMessage hook
* refactor: consolidate agent screen constants and integrate with existing screens
* fix: update dependency array in useMemo for isUnrevealedPost to include post expiration metadata
* refactor: remove unused variable to clean up Typing component
* refactor: simplify logic for atDisabled and slashDisabled flags in QuickActions component
* feat: add AIRewriteAction component for AI message rewriting functionality
* revert: thread.ts changes manually
* refactor: integrate useSafeAreaInsets
* refactor: cleanup unused methods
* chore: add comment to clarify casting
* refactor: use_agents
* chore: lint and test
* fix: trim
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Add autotranslations
* Develop latest changes and missing features
* i18n-extract
* Fix tests and update api behavior
* Fix minor bugs
* adjustments to shimmer animation, showtranslation modal style
* Update post.tsx
* Update show_translation.tsx
* adjust sizing and opacity of translate icon
* Add channel header translated icon
* Disable auto translation item if it is not a supported language
* Move channel info to the top
* Update edit channel to channel info
* Fix align of option items
* Fix i18n
* Add detox related changes for channel settings changes
* Add tests
* Address changes around the my channel column change
* Address feedback
* Fix test
* Fix bad import
* Fix set my channel autotranslation
* Fix test
* Address feedback
* Add missing files from last commit
* Remove unneeded change
---------
Co-authored-by: Matthew Birtch <mattbirtch@gmail.com>
* Initial setup for new keyboard
* fix the offset calculation onMove by adding isKeyboardFullyOpened
* Done with the keyboard handling implementation
* Handled keyboard focus and blured state using context
* Added default height for input container
* Android support
* Tablet state handling
* Fix for refreshing offset in list
* Created a default context for mention post list
* Fix linter errors
* Fix tests
* Minor
* Fix the height issue for tablet view
* Review comments
* Dependency fix
* Reveiw comment
* keyboard animation only enabled with screen on top navigation
* added tests
* Added extra keyboard component for emoji picker (#9328)
* Added extra keyboard component
* handled swipe geature for extra keyboard
* scroll to bottom visible on emoji picker
* Check for stale event for keyboard geature area
* fix keyboard stale event for mid-gesture change swipe direction
* Closing emoji picker when message priority is opened
* changing to thread view closes emoji picker
* Close emoij picker and keyboard when attachment icons are clicked
* handle android emoji picker behaviour
* Remove emoji picker code
* fix tests
* Address reviev comments
* Test fixes
* usePreventDoubleTab for race condition and corrected comment on isInputAccessoryViewMode flag
* File attachments option in bottom sheet quick action (#9331)
* Added extra keyboard component
* handled swipe geature for extra keyboard
* File attachments option in bottom sheet quick action
* Updated tests
* i18n
* fix test
* Added tests
* Review comment
* fix tests
* Integrated Emoji picker to Extra keyboard component. (#9339)
* Added extra keyboard component
* handled swipe geature for extra keyboard
* scroll to bottom visible on emoji picker
* Fix the post input container height change issue
* Added emoji picker with search functionality
* keyboard height not recorded fallback to default height, set search to false closing emoji picker
* fix search funcitonality in android
* scroll to end bottom dismissed with pressed
* Fixed the scroll issue for android
* fix the flickering post input issue
* Wired up the emoji picker
* Added keyboard and spaceback in emoji picker
* intl extract
* initial cursor position and simple calculation review comment
* separated grapheme to utils file
* Review comments
* nitpick
* Fix the bottom safe area and navigation stack restore fix
* Fix test
* disabled emoji picker in edit post screen
* change the name of the variable to name it clarier
* fix the tab gap issue in andriod
* disabled the emoji skin tone change on andriod
* fix the input container jump issue
* fix the failing test
* UX review
* added white space after the attachment icon
* When @ or / is press open keyboard on andriod also fix the scroll issue when keyboard is open
* back bottom closes emoji picker and opening keyboard jump fix
* reverted code
* fixed the flickering issue of input and scroll position fix
* Added BoR button
* Fix the gap issue in thread
* fix the warning reaminated issue when opening a channel
* Fix the extra space issue between input and emoij picker
* Minor fix for extra space between input and emoji picker
* WIP
* Fix thread view bottom safe area and gap between keyboard and searched emojis
* WIP
* refactor: make borConfig optional in BoRAction component
* refactor: remove optional borConfig and simplify state initialization
* Fix the keyboard issue in tablet
* Fix the warning issue react-native-keyboard-controller
* Fix tests
* Fix the tablet search hight issue
* Replaced the ExtraKeyboardProvider with KeyboardProvider from rnkc for permalink
* WIP
* Successfully toggeled bor status
* Displayed bor chip in draft editor
* Send bor post
* Displayed bor chip in draft editor with wrapping
* Added read receipt
* Bottom sheet jump issue resolved
* Search do not close after selecting emoji in search list
* Added the bottom inset height in search emoji for android
* integrated bor receipt count
* fix buid issue
* Added margin
* Handled updating receipts on sync
* test: add comprehensive tests for updateDraftBoRConfig
* test: add initial test file for burn on read label component
* test: add tests for BoRLabel component
* test: update BoRLabel tests to use toBeVisible and remove formatTime mock
* test: update BoR label tests to use renderWithIntl
* refactor: remove getBaseProps and specify props inline in BoRLabel tests
* refactor: improve test component formatting for readability
* test: add validation for BoRLabel time display formats
* test: add comprehensive tests for Burst on Read (BoR) functionality
* WIP
* test: add unit tests for BOR quick action component
* test: add comprehensive tests for BoR quick action component
* test: add missing props to QuickActions test setup
* test: add tests for BoR quick action rendering
* test: mock BoRQuickAction component for testing
* test: add comprehensive tests for observeIsBoREnabled function
* test: add initial test file for BOR read receipts screen
* test: add comprehensive tests for BORReadReceipts component
* test: add test cases for BOR read receipts display
* test: add comprehensive tests for humanReadable format in formatTime
* Added tests
* lint fix
* cleanup
* cleanup
* cleanup
* cleanup
* cleanup
* i18n fix
* Fix the cancel state to emoji picker
* Prevented displaying BoR quick action in threads
* Fixed a test
* lint fix
* review fixes
* review fixes
* i18n fix
* fixed tests
* review fixes
* lint fix
* restored podfile
* Fixed WS event handling for receiving bor post receipnt
* Fixed a test
* fixed TS
* Implemented burn post now for sender and receiver (#9401)
* Implemented burn post now for sender and receiver
* test: add tests for burnPostNow function
* test: add test for delete post option
* test: add comprehensive tests for DeletePostOption component
* Added tests
* Lint fix
* minor improvemenmts
* lint fix
* reset unintended changes
* reset unintended changes
* Bor delete when read by all (#9407)
* WIP
* Updated for all read
* cleanup
* test: add comprehensive tests for handleBoRPostAllRevealed
* test: add tests for BOR events in websocket event handler
* feat: add comprehensive tests for shouldUpdateForBoRPost function
* Added tests
* Lint fix
* fixed TS
* fixed padding
* UX fixes
---------
Co-authored-by: Rajat Dabade <a-rajat.dabade@mattermost.com>
Co-authored-by: Rajat Dabade <rajatdabade1997@gmail.com>
Co-authored-by: Mattermost Build <build@mattermost.com>
Co-authored-by: Rahim Rahman <rahim.rahman@mattermost.com>
* Initial setup for new keyboard
* fix the offset calculation onMove by adding isKeyboardFullyOpened
* Done with the keyboard handling implementation
* Handled keyboard focus and blured state using context
* Added default height for input container
* Android support
* Tablet state handling
* Fix for refreshing offset in list
* Created a default context for mention post list
* Fix linter errors
* Fix tests
* Minor
* Fix the height issue for tablet view
* Review comments
* Dependency fix
* Reveiw comment
* keyboard animation only enabled with screen on top navigation
* added tests
* Added extra keyboard component for emoji picker (#9328)
* Added extra keyboard component
* handled swipe geature for extra keyboard
* scroll to bottom visible on emoji picker
* Check for stale event for keyboard geature area
* fix keyboard stale event for mid-gesture change swipe direction
* Closing emoji picker when message priority is opened
* changing to thread view closes emoji picker
* Close emoij picker and keyboard when attachment icons are clicked
* handle android emoji picker behaviour
* Remove emoji picker code
* fix tests
* Address reviev comments
* Test fixes
* usePreventDoubleTab for race condition and corrected comment on isInputAccessoryViewMode flag
* File attachments option in bottom sheet quick action (#9331)
* Added extra keyboard component
* handled swipe geature for extra keyboard
* File attachments option in bottom sheet quick action
* Updated tests
* i18n
* fix test
* Added tests
* Review comment
* fix tests
* Integrated Emoji picker to Extra keyboard component. (#9339)
* Added extra keyboard component
* handled swipe geature for extra keyboard
* scroll to bottom visible on emoji picker
* Fix the post input container height change issue
* Added emoji picker with search functionality
* keyboard height not recorded fallback to default height, set search to false closing emoji picker
* fix search funcitonality in android
* scroll to end bottom dismissed with pressed
* Fixed the scroll issue for android
* fix the flickering post input issue
* Wired up the emoji picker
* Added keyboard and spaceback in emoji picker
* intl extract
* initial cursor position and simple calculation review comment
* separated grapheme to utils file
* Review comments
* nitpick
* Fix the bottom safe area and navigation stack restore fix
* Fix test
* disabled emoji picker in edit post screen
* change the name of the variable to name it clarier
* fix the tab gap issue in andriod
* disabled the emoji skin tone change on andriod
* fix the input container jump issue
* fix the failing test
* UX review
* added white space after the attachment icon
* When @ or / is press open keyboard on andriod also fix the scroll issue when keyboard is open
* back bottom closes emoji picker and opening keyboard jump fix
* reverted code
* fixed the flickering issue of input and scroll position fix
* Fix the gap issue in thread
* fix the warning reaminated issue when opening a channel
* Fix the extra space issue between input and emoij picker
* Minor fix for extra space between input and emoji picker
* Fix thread view bottom safe area and gap between keyboard and searched emojis
* Fix the keyboard issue in tablet
* Fix the warning issue react-native-keyboard-controller
* Fix tests
* Fix the tablet search hight issue
* Replaced the ExtraKeyboardProvider with KeyboardProvider from rnkc for permalink
* Bottom sheet jump issue resolved
* Search do not close after selecting emoji in search list
* Added the bottom inset height in search emoji for android
* fix buid issue
* Fix the cancel state to emoji picker
* use portals for autocomplete
* fix permalink extra space in post list
* Portal only for android
---------
Co-authored-by: Mattermost Build <build@mattermost.com>
Co-authored-by: Rahim Rahman <rahim.rahman@mattermost.com>
Co-authored-by: Harshil Sharma <harshilsharma63@gmail.com>
Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
* Added scaffolding for unrevealed BoR post
* Displayed reveal UI
* Displayed expiry timer
* WIP
* Displayed own post indicator and blur text
* restored button
* Ungrouped BoR posts
* WIP
* WIP
* DIsplayed error message on revealing
* Added last run check on mobile app cleanup job
* Cleanup
* lint fix
* i18n-fix
* Added tests
* test: add test suite for revealBoRPost function
* test: add unrevealed burn on read post test file
* feat: add tests for UnrevealedBurnOnReadPost component
* test: update UnrevealedBurnOnReadPost test with PostModel type
* test: replace toBeTruthy with toBeVisible for component visibility assertions
* test: add initial test file for expiry timer component
* test: add comprehensive tests for ExpiryCountdown component
* refactor: clean up test formatting and remove redundant test case
* fix: adjust test timing for ExpiryCountdown onExpiry callback
* test: fix timer test by advancing timers in smaller increments
* Added tests
* Updated tests
* fixed accidental change
* restored package.resolved
* WIP review fixes
* Review fixes
* Review fixes
* Fixed tests
* restored package.resolved
* WIP
* test: add test for skipping BoR post cleanup within 15 minutes
* test: add comprehensive test cases for expiredBoRPostCleanup
* WIP
* WIP
* test: add bor.test.ts placeholder file
* test: add comprehensive tests for BoR utility functions
* test: add comprehensive tests for formatTime function
* WIP
* test: add comprehensive tests for getLastBoRPostCleanupRun function
* Added tests
* removed a commented code
* post list optimization
* test: add test case for updating unrevealed burn-on-read post
* fix: handle error logging in expiredBoRPostCleanup test
* test: add test case for updateLastBoRCleanupRun error handling
* review fixes
* lint fixes
* Added WS event handling (#9320)
* Added WS event handling
* test: add burn on read websocket action test
* test: add tests for handleBoRPostRevealedEvent in burn_on_read
* Added tests
* test: add comprehensive error handling test cases for burn on read
* Added tests and error handling
* BoR post - restricted actions (#9315)
* Restricted post actions for BoR post type
* Prevent opening thread fr nBoR post
* WIP
* fix: remove redundant observable wrapping in post options
* fixed a change
* removed broken
* restored package.resolved
* Added tests
* Awaiting for last run to be set
* Added tests for validating expiry timer behaviour (#9338)
* Added tests for validating expiry timer behaviour
* No need of use event setup
* Bor ux fixes (#9336)
* WIP
* UI and delete fixes
* lint fixes
* fixed tests
* Improved mocking
* Improved test
* Handled the case of own BoR post not relying on post.metadata
* Added scaffolding for unrevealed BoR post
* Displayed reveal UI
* Displayed expiry timer
* WIP
* Displayed own post indicator and blur text
* restored button
* Ungrouped BoR posts
* WIP
* WIP
* DIsplayed error message on revealing
* Added last run check on mobile app cleanup job
* Cleanup
* lint fix
* i18n-fix
* Added tests
* test: add test suite for revealBoRPost function
* test: add unrevealed burn on read post test file
* feat: add tests for UnrevealedBurnOnReadPost component
* test: update UnrevealedBurnOnReadPost test with PostModel type
* test: replace toBeTruthy with toBeVisible for component visibility assertions
* test: add initial test file for expiry timer component
* test: add comprehensive tests for ExpiryCountdown component
* refactor: clean up test formatting and remove redundant test case
* fix: adjust test timing for ExpiryCountdown onExpiry callback
* test: fix timer test by advancing timers in smaller increments
* Added tests
* Updated tests
* fixed accidental change
* restored package.resolved
* WIP review fixes
* Review fixes
* Review fixes
* Fixed tests
* restored package.resolved
* WIP
* test: add test for skipping BoR post cleanup within 15 minutes
* test: add comprehensive test cases for expiredBoRPostCleanup
* WIP
* WIP
* test: add bor.test.ts placeholder file
* test: add comprehensive tests for BoR utility functions
* test: add comprehensive tests for formatTime function
* WIP
* test: add comprehensive tests for getLastBoRPostCleanupRun function
* Added tests
* removed a commented code
* post list optimization
* test: add test case for updating unrevealed burn-on-read post
* fix: handle error logging in expiredBoRPostCleanup test
* test: add test case for updateLastBoRCleanupRun error handling
* review fixes
* lint fixes
* Added WS event handling (#9320)
* Added WS event handling
* test: add burn on read websocket action test
* test: add tests for handleBoRPostRevealedEvent in burn_on_read
* Added tests
* test: add comprehensive error handling test cases for burn on read
* Added tests and error handling
* BoR post - restricted actions (#9315)
* Restricted post actions for BoR post type
* Prevent opening thread fr nBoR post
* WIP
* fix: remove redundant observable wrapping in post options
* fixed a change
* removed broken
* restored package.resolved
* Added tests
* Awaiting for last run to be set
* Added tests for validating expiry timer behaviour (#9338)
* Added tests for validating expiry timer behaviour
* No need of use event setup
* Bor ux fixes (#9336)
* WIP
* UI and delete fixes
* lint fixes
* fixed tests
* Improved mocking
* Improved test
* refactor: implement custom ExpoImage wrapper for cache control
Add ExpoImage component with automatic cacheKey/cachePath management and replace all expo-image imports across the app
* refactor(ios): convert Gekidou to CocoaPods
Migrate from Swift Package Manager to CocoaPods, add Keychain write operations, refactor notification handler to remove react-native-notifications headers, and upgrade Swift to 5.0
* npm audit
* update fastlane
* feat(ci): integrate Intune MAM for enterprise builds with strict OSS protection
Add Intune submodule, CI actions, Fastlane configuration, developer scripts, pre-commit hooks, and validation workflows to enable internal MAM builds while protecting OSS repository
* fix tests by mocking @mattermost/intune
* feat: implement Intune MAM integration with comprehensive security enforcement
Add IntuneManager, refactor SecurityManager/SessionManager for MAM policies, implement native OIDC auth flow, add biometric enforcement, conditional launch blocking, and file protection controls
* fix alerts when no server database is present
* Unify cache strategy
* fix emit config changed after it was stored in the db
* Handle Mid-Session Enrollment Detection
* fix ADALLogOverrideDisabled missing in Fastfile
* fix flow for initial enrollment
* fix and add unit tests
* enable Intune configuration for PR and beta builds, CLIENT_ID should be changed before actual release
* Update intune submodule with addressed feedback
* fix validate-intune-clean workflow
* feat(intune): add comprehensive error handling and SAML+Entra support
Add production-ready error handling for native Entra authentication with
user-friendly i18n messages, comprehensive test coverage, and support for
Entra login when server requires SAML.
* update i18n
* update intune submodule
* update build-pr token
* fix race condition between server auth and intune enrollment
* fix CI workflow to build with intune
* use deploy key for intune submodule
* set the config directly in the submodule .git
* debug injection
* try setting GIT_SSH_COMMAND
* remove action debug
* fix server url input
* match pod cache with intune hash
* Fastfile and envs
* have workflows check for intune/.git
* have ci cache intune frameworks as well
* update Fastlane to set no-cache to artifacts uploaded
* fix s3 upload
* fix pblist template
* Attempt to remove the cache control for PR uploads to s3
* use hash from commit for S3 path
* Implement crash-resilient selective wipe with automatic retry and add removeInternetPassword to Gekidou Keychain
* Fix surface errors from intune login
* fix postinstall scripts
* use cacheKey for draft md images
* remove unnecessary double await during test
* Have isMinimumLicenseTier accept valid license sku tier as target
* Add missing Auth error messages
* remove the last period for intune errors in i18n
* do not call unenroll with wipe on manual logout
* Fix tests and Intune error messages
* do not filter any SSO type regardless of which is used for Intune
* fix 412 to not retry
* fix tests, app logs sharing and share_extension avatar cache
* apply setScreenCapturePolicy on license change
Co-authored-by: Eva Sarafianou <eva.sarafianou@mattermost.com>
* re-apply screen capture on enrollment
Co-authored-by: Eva Sarafianou <eva.sarafianou@mattermost.com>
* use userData from intunr login and prevent getMe
Co-authored-by: Eva Sarafianou <eva.sarafianou@mattermost.com>
* Check for Biometrics and Jailbreak as we used to
---------
Co-authored-by: Eva Sarafianou <eva.sarafianou@mattermost.com>
* Agents streaming
* Fix bug and lint
* Add reasoning summaries to mobile agents
* Add tool call approval UI for mobile agents
* Add citations and annotations support for mobile agents
Implements Phase 4 from the agents mobile plan:
- WebSocket event handling for annotations control signal
- CitationsList component displaying sources below agent responses
- Collapsible sources section with source count
- Each citation shows title, domain, and opens URL on tap
- Citations persisted in post.props.annotations
- Touch-optimized UI with 44pt minimum tap targets
* Add stop and regenerate controls for mobile agents
* Add tests
* Fix tool approval buttons not updating after accept/reject
- Remove optimistic WebSocket event approach that didn't work
- Clear component streaming state on ENDED event to force switch to persisted data
- Remove delays in streaming store cleanup (500ms and 100ms)
- POST_EDITED event now properly updates UI for both accept and reject
- Remove debug console.log statements
- Fix ESLint issues (unused vars, nested callbacks, nested ternary)
* Refactor agents code: remove unused client mixin, fix bugs, and simplify logic
* Fixes
* Add CLAUDE.md
* Review feedback.
* Review feedback inline functions
* Learnings
* Address review feedback: StyleSheet.create, parent mount checks, utils
* Move to observables
* Last style fix
* Style tweaks
- Moved STATUS_COLORS declaration outside of the conditional block for better readability.
- Updated hexColor assignment logic to ensure a default color is applied when buttonColor is not provided.
- Adjusted customButtonStyle and customButtonTextStyle to use the updated hexColor logic.
* typescript and view component for permalink with user and message
* Old post edited handling in permalink
* Added test and update flag value to EnablePermalinkPreview
* Added test for permalink_preview component
* Added test for content/index.tsx for permalink
* Addressed review comments
* Unit test for missing file and review comments
* Added test to check handlePostEdited permalink sync only calls one time only
* Change TouchableOpacity to Pressable
* When user not found fetch the user from the server
* Removed the redundant test in the test for permalink_preview/index?
* ts to tsx
* Removed the circular dependency
* Address review comments
* displayname fallback
* remove permalink when permalink post is deleted
* UX review comments
* Linter fixes
* Test fixes
* File attachment in permalink preview component
* Fix the width and height of the image in permalink
* Added gredient when exceeds height of permalink container
* Minor
* Updated tests
* Minor
* Review comments
* Minor review comments
* type fixes
* Review comments
* Minor
* Mention ability in permalink preview
* Support for external link in permalink
* Handle device not connected update permalink post
* test fixes
* Address review comments
* Minor
* Merge fixes
* Addressed review comments
* Fix content.test.tsx after permalink branch merge
- Updated test expectations to use embedData prop instead of post prop
- Fixed assertions to match the new PermalinkPreview API
- All content tests now pass
* review comments
* Review comments
* Some more review comments
* Minor
* Fixed the undefined issue for opengraph component metadata
* More fixes
* Navigation for permalink
* Tablet fixes
* type chech for site name
* linter fixes
* UX review and remove show more height not require
* Fix tests
* Fixed the navigation issue for DM's
* Minor fixes due to merge main
---------
Co-authored-by: yasserfaraazkhan <attitude3cena.yf@gmail.com>
* typescript and view component for permalink with user and message
* Old post edited handling in permalink
* Added test and update flag value to EnablePermalinkPreview
* Added test for permalink_preview component
* Added test for content/index.tsx for permalink
* Addressed review comments
* Unit test for missing file and review comments
* Added test to check handlePostEdited permalink sync only calls one time only
* Change TouchableOpacity to Pressable
* When user not found fetch the user from the server
* Removed the redundant test in the test for permalink_preview/index?
* ts to tsx
* Removed the circular dependency
* Address review comments
* displayname fallback
* remove permalink when permalink post is deleted
* UX review comments
* Linter fixes
* Test fixes
* File attachment in permalink preview component
* Fix the width and height of the image in permalink
* Added gredient when exceeds height of permalink container
* Minor
* Updated tests
* Minor
* Review comments
* Minor review comments
* type fixes
* Review comments
* Minor
* Mention ability in permalink preview
* Support for external link in permalink
* Handle device not connected update permalink post
* test fixes
* Address review comments
* Minor
* Merge fixes
* Addressed review comments
* Fix content.test.tsx after permalink branch merge
- Updated test expectations to use embedData prop instead of post prop
- Fixed assertions to match the new PermalinkPreview API
- All content tests now pass
* review comments
* Review comments
* Some more review comments
* Minor
* Fixed the undefined issue for opengraph component metadata
* More fixes
* type chech for site name
* linter fixes
* UX review and remove show more height not require
* Fix tests
* Review nitpick and fixes
* Minor UX changes
---------
Co-authored-by: yasserfaraazkhan <attitude3cena.yf@gmail.com>
* typescript and view component for permalink with user and message
* Old post edited handling in permalink
* Added test and update flag value to EnablePermalinkPreview
* Added test for permalink_preview component
* Added test for content/index.tsx for permalink
* Addressed review comments
* Unit test for missing file and review comments
* Added test to check handlePostEdited permalink sync only calls one time only
* Change TouchableOpacity to Pressable
* When user not found fetch the user from the server
* Removed the redundant test in the test for permalink_preview/index?
* ts to tsx
* Removed the circular dependency
* Address review comments
* displayname fallback
* remove permalink when permalink post is deleted
* UX review comments
* Linter fixes
* Test fixes
* File attachment in permalink preview component
* Fix the width and height of the image in permalink
* Added gredient when exceeds height of permalink container
* Minor
* Updated tests
* Minor
* Review comments
* Minor review comments
* type fixes
* Review comments
* Minor
* Address review comments
* Minor
* Merge fixes
* Addressed review comments
* Some more review comments
* linter fixes
* UX review and remove show more height not require
* Fix tests
* Review fixes, dev and ux
---------
Co-authored-by: yasserfaraazkhan <attitude3cena.yf@gmail.com>
* typescript and view component for permalink with user and message
* Old post edited handling in permalink
* Added test and update flag value to EnablePermalinkPreview
* Added test for permalink_preview component
* Added test for content/index.tsx for permalink
* Addressed review comments
* Unit test for missing file and review comments
* Added test to check handlePostEdited permalink sync only calls one time only
* Change TouchableOpacity to Pressable
* When user not found fetch the user from the server
* Removed the redundant test in the test for permalink_preview/index?
* ts to tsx
* Removed the circular dependency
* Address review comments
* displayname fallback
* remove permalink when permalink post is deleted
* UX review comments
* Linter fixes
* Test fixes
* Address review comments
* Minor
* Some more review comments
---------
Co-authored-by: yasserfaraazkhan <attitude3cena.yf@gmail.com>
* Playbook run status update post
* Show Playbooks button in Channel Info screen only if playbooks is enabled
* Handle Playbook links
* Fetch playbook if needed
* fix playbooks migration
* fix deeplinks using parsedUrl
* update last time playbooks where fetched if no errors
* show participants for run status update post
* fix tests
* remove console.log in test
* feedback review
* wrap participants footer
* add fastlane FASTLANE_XCODEBUILD_SETTINGS_RETRIES env vars
* Add the channel options to get into playbooks (#8750)
* Add the channel options to get into playbooks
* Use playbook run id instead of playbook id
* i18n
* Fix issues and move playbooks to the products folder
* Address some tests
* Fix test
* Address design issues
* Add requested comment
---------
Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
* Playbooks database (#8802)
* Add lastPlaybookFetchAt to channel table (#8916)
* Add lastPlaybookFetchAt to channel table
* Add missing commit
* Use my_channel table instead
* Fix test
* Address feedback
* First implementation of playbooks API (#8897)
* First implementation of playbooks API
* Add version check
* Address feedback
* Fix test
* Add last fetch at usage and other improvements
* Simplify test
* Add sort_order, update_at and previousReminder columns (#8927)
* Add sort_order, update_at and previousReminder columns
* Remove order from the schema
* Fix tests
* Add tests
* Add websockets for playbooks (#8947)
* Add websocket events for playbooks
* Fix typo
* Add playbook run list (#8761)
* Add the channel options to get into playbooks
* Use playbook run id instead of playbook id
* i18n
* Fix issues and move playbooks to the products folder
* Address some tests
* Fix test
* Add playbook run list
* Add missing texts
* Add back button support and item size to flash list
* Address design issues
* Add requested comment
* Standardize tag and use it in the card
* Fix merge
* Add API related functionality
---------
Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
* Add playbooks run details (#8872)
* Add the channel options to get into playbooks
* Use playbook run id instead of playbook id
* i18n
* Fix issues and move playbooks to the products folder
* Address some tests
* Fix test
* Add playbook run list
* Add missing texts
* Add back button support and item size to flash list
* Address design issues
* Add requested comment
* Standardize tag and use it in the card
* Add playbooks run details
* Fix merge
* Add API related functionality
* Add API related changes
* Order fixes
* Several fixes
* Add error state on playbook run
* i18n-extract
* Fix tests
* Fix test
* Several fixes
* Fixes and add missing UI elements
* i18n-extract
* Fix tests
* Remove files from bad merge
---------
Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
* Add missing tests for playbooks (#8976)
* Add the channel options to get into playbooks
* Use playbook run id instead of playbook id
* i18n
* Fix issues and move playbooks to the products folder
* Address some tests
* Fix test
* Add playbook run list
* Add missing texts
* Add back button support and item size to flash list
* Address design issues
* Add requested comment
* Standardize tag and use it in the card
* Add playbooks run details
* Fix merge
* Add API related functionality
* Add API related changes
* Order fixes
* Several fixes
* Add error state on playbook run
* i18n-extract
* Fix tests
* Fix test
* Several fixes
* Fixes and add missing UI elements
* i18n-extract
* Fix tests
* Remove files from bad merge
* Add tests
* Fix typo
* Add missing strings
* Fix tests and skip some
* Fix test
* Fix typo
---------
Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
* Address feedback
* Address feedback and fix tests
* Address comments and fix tests
* Address feedback
* Address plugin changes and fix bugs
---------
Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
* Viewing Files in Edit mode in mobile with ability to delete and save
* Added upload attachment to keyboard tracker view
* using state instread of use ref
* Minor
* Added tests
* intl extract
* new function getFiles
ById, batch file deletion and tests
* Files fetching in edit options and tests
* Removed DeviceEventEmitter and used React context
* Added support to check minimum required version to show edit file attachments
* resolve forward ref issue
* Minor
* memotized props for context and observe config with value
* Ability to show quick action and add files to edit post
* type safety for EditPostContext
* Reverted back the post priority props
* constant shift
* Added test for QuickAction to show slashcomand
* Added test for edit_post, upload_item and upload_remove
* Added test for Edit_post_input and edit_post index
* fix the height issue between attachment and keyboard due to safeArea
* Minor: removed debugging border color
* Changed the Edited text style in the post from (edited) to icon + Edited
* Import fixes
* Ability to show quick action and add files to edit post
* type safety for EditPostContext
* Reverted back the post priority props
* constant shift
* Added test for QuickAction to show slashcomand
* Added test for edit_post, upload_item and upload_remove
* Added test for Edit_post_input and edit_post index
* fix the height issue between attachment and keyboard due to safeArea
* Minor: removed debugging border color
* Addressed dev review comments
* Import fixes
* Address UX comments
* Fixed props for UploadItem and remove effective Edit mode
* handled save button disabled state when uploading attachments
* handled newly added and retry file removal without alert message
* Test updated
* Added test for input_quick_action index.tsx
* Added test for not in edit mode for upload_item index
* Added test for upload_remove component when not in edit mode
* added tests for file_upload_error hook
* Added test for calling callback when in edit mode
* Test for edit post input for server version check
* linter fixes
* Changed font size from 16 to 14px for edited
* separated common component and test
* Removed the margin styles from the text as it is not been applied.
* removed the duplicate code from rebase
* Only set the height on the message component if it ends up being greater than the maxHeight to avoid re-renders
* Cache the teams theme to avoid unnecessary computation and re-renders
* useDidUpdate instead of useEffect to avoid setting the theme preference without need
* add comment on clear cache
* Add support to use the keyboard area with a component
* fix import
* add missing providers to involved screens
* Change the way we handle the keyboard to allow using custom components in that area
* review feedback
* fix: remove ephemeral posts on refresh
* fix: remove ephemeral posts during app launch
* fix: remove code to await the cleanup
* use built in constant instead of string `system_ephemeral`
* remove sort from `queryPostsByType()`
* switch back to the `await` approach in `cleanupEphemeralPosts`
---------
Co-authored-by: Mattermost Build <build@mattermost.com>
* feat: Add visible to you text on ephemeral posts
* docs: update localization file
* style: system header of ephemeral post
* feat: visible to you text for ephemeral posts