* Handle FileWillBeDownloaded plugin hook rejections
- Add WebSocket handler for file_download_rejected events
- Show rejected files as file cards instead of broken thumbnails
- Display plugin rejection message in snackbar
- Store rejection reason in EphemeralStore for later retrieval
- Re-render file components when rejection events arrive
- Remove blurred preview to prevent visual blink on rejection
* chore: lint
* chore: lint and test
* fix: removed event from useEffect
* 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>
* 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
* 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
* Import fixes
* updated styles for reaction bar and made pick reaction pressable
* removed unused style import
* removed unused style import
* updated user avatars, user presence, thread options bottom sheets to new style also
* updated status bottom sheet, thread options, and some tweaks to the bottom sheet main file
* fixed a few minor styling issues
* used proper bottom inset in user presence bottom sheet
* various updates to bottom sheets
* used negative top position instead of negative margin
* updated camera type bottom sheet
* further refinements to bottom sheets
* updates to emoji bar and profile image picker
Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
* added MENU_ITEM_HEIGHT to constant/view
* fix user presence and your profile
* added MENU_ITEM_HEIGHT to constant/view
* fix user presence and your profile
* UI Polish - Custom Status
* UI Polish - Settings
* UI Polish - logout
* refactored styles
* removed 'throws DataOperatorException' from './database/`
* fix for copy link option
* fix autoresponder
1. user should be allowed to enter paragraph
2. the OOO was not immediately being updated on the notification main screen. The fix is to cal fetchStatusInBatch after the updateMe operation
* About Screen - code clean up
* removed MenuItem component from common_post_options
* removed MenuItem from Settings
* refactored show_more and recent_item
* removed menu_item component
* Update setting_container.tsx
* PR review correction
* Update setting_container.tsx
* Update recent_item.tsx
* refactoring code to use useAndroidBackHandler hook - part 1
* useNavButtonPressed - part 2
* useNavButtonPressed hook - part 3
* Apply suggestions from code review
Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
* PR review corrections
Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
* Fix navigation stack tracking
* Fix hardwareBackPress handlers
* Use user locale for formattedTime
* Show in-app notifications when in a thread but hide when in the same thread
* Fix post draft archived & read only safe area
* Do not show reply post option in thread screen
* Open permalink as full screen modal
* Fix crash when using chinese locale
* Fix team list and call handle team change
* Fixes
* Updated snapshot
* Excluding current user from getting updated
* Doesn't handle users if it's empty
Co-authored-by: Elias Nahum <nahumhbl@gmail.com>