* 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>
* handled the websocket event when a user burns a BoR post as receiver
* test: add comprehensive tests for handleBoRPostBurnedEvent function
* Added tests
* reset unintended changes
* Minor fix
* 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
* 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
* 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>
This commit introduces new functionality on the client side to send PING messages over the websocket. If the server doesn't respond within PING_INTERVAL (currently 30 seconds), the connection is closed and re-created. This will allow us to find broken connections more quickly.
* host remove command, host removed feedback
* add view profile control
* i18n; dismissBottomSheet later
* PR comments
* remove confusing setPreviousCall(null)
* our own separator, bit more space for Android
* no need for previousCall due to changes on server
* move host removed alert to an error
* channel_id is not send via the msg.broadcast
* channel_id is still sent via the msg.broadcast
* mobile support for live captions
* add the 'Live captions turned on' ephemeral notice
* PR comments
* message should be translatable
* run i18n-extract
* call_recording_state -> call_job_state; ccAvailable is now dynamic
* backwards compatibility with pre calls v0.26.0
* correct mobile version in deprecation comments
---------
Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
* Fix several issues around team join
* Open in modal and fix channel list
* Add joining states and fix issues
* i18n-extract
* add specific message for group related failures on joining teams
* Address feedback
* Address feedback
* Use error from server response
* Fix add DM screen and some other database related issues
* Minor style fixes
* Handle create DM/GM websocket by using the teammate ids
* Address feedback
* Adds actions, queries, db models and rest client
* Adds Websocket handling for categories
* fix merge
* small refactor for categories websocket events
* fix bad merge
* Category delete handled
* Handles deletion (prune on store)
* Resolves feedback, adds team handling for prune
* Minor fixes; param order and return, imports, type naming
Co-authored-by: Elias Nahum <nahumhbl@gmail.com>