* 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>
* feat: add support for reduced motion in BottomSheet and TabBar components
* fix: remove reduceMotion option from animation timing in login, onboarding, and server screens
* feat: integrate reduced motion support to the entire app and switch accordingly
* feat: positions the Login screen differently if animations are disabled
* fix: remove mock implementation of useReducedMotion in react-native-reanimated
* revert login screen
* fix: remove unused effect that resets translateX value in LoginOptions
* feat: add reduced motion support to ForgotPassword screen and reset translateX on LoginOptions mount
* feat: integrate reduced motion support in Onboarding and Slide components
* feat: add reduced motion support to MFA and SSO screens
* feat: update ReducedMotionConfig to use system preference in withServerDatabase
* refactor: remove ReducedMotionConfig from withServerDatabase component
* feat: remove reduced motion configuration from screens and adjust animations accordingly
* feat: integrate reduced motion handling in Server component animations
* feat: enhance BottomSheet animation with reduced motion support and update test setup for react-native-reanimated
* fix: update channel list row snapshots with collapsable and animated props
* test: update react-native-reanimated mock setup for improved testing
* fix: enhance react-native-reanimated mock to support reduced motion and prevent default call
* fix: refactor animationConfigs to use useMemo for improved performance and clarity
* feat: implement screen transition animation hook and integrate it into ForgotPassword screen
* fix: refactor LoginOptions to utilize useScreenTransitionAnimation for improved animation handling
* refactor: streamline MFA component by removing unused imports and integrating useScreenTransitionAnimation for enhanced transitions
* refactor: simplify Onboarding component by removing unused imports and integrating useScreenTransitionAnimation for smoother transitions
* refactor: enhance useScreenTransitionAnimation hook to support animated transitions and integrate it into Server component
* refactor: replace custom animation logic with useScreenTransitionAnimation in SSO component for improved transition handling
* 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
* 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
* MM-64243 Fix the animation delay while send the post in the channel
* Updated test and logic
---------
Co-authored-by: Mattermost Build <build@mattermost.com>
* Standardize tabs across different components
* Add tests and minor fixes
* Remove unneeded tests
* Add missing change
* Fix test
* Refactor to remove the component from the hook
* Rename hasDot for requiresUserAttention.
* Apply the changes to scheduled posts
* Fix texts
* Fix tests and fix minor style issue on iOS
* Fix filter positioning
* Fix some e2e tests
* Fix tests
---------
Co-authored-by: Mattermost Build <build@mattermost.com>
* MM-63935 - abac end user indicators
* rename policy variables to clearly indicate are from abac
* update attributes hook to cache processed data
* use policyEnforce property
* add missing type
* rename policy_enforced to abac_policy_enforced part 1
* add channel policy enforced type
* fix translation file
* remove unnecesary stop propagation
* use existing components
* remove unnecesary files
* fix snapshot
* update snapshot
* do not tie styles to the abac feature
* remove unnecesary margin top
* simplify props, add style for flat banner, remove unncesary index
* simplify condition, extract inline to component function
---------
Co-authored-by: Mattermost Build <build@mattermost.com>
* MM-63935 - abac end user indicators
* rename policy variables to clearly indicate are from abac
* update attributes hook to cache processed data
* use policyEnforce property
* add missing type
* rename policy_enforced to abac_policy_enforced part 1
* add channel policy enforced type
* fix translation file
* remove unnecesary stop propagation
* MM-63935 - abac end user indicators db changes
* rename the policy name to clarify which policy does refer to
* update property name and add documentation to clarify intention
* rename policy_enforced to abac_policy_enforced db changes side
* WIP
* fix keyboard blocking text input for interactive dialog
* do not use extra keyboard and windowSoftInputMode:adjustNothing on Android 10 and under
---------
Co-authored-by: Devin Binnie <devin.binnie@mattermost.com>
* feat: Add support for custom profile attributes in edit profile form
feat: Add support for custom profile attributes in edit profile
refactor: Normalize whitespace in CustomAttribute type definition
fix: Resolve type mismatch for customAttributes in UserInfo interface
test: Add test for udpateCustomProfileAttributeValues method
fix typing, submit changes to server
missing files
test: Add tests for CustomProfileField component
fix naming
fix imports
fix
feat: Add field_refs hook for managing field references
feat: Make `setRef` ref parameter optional with default no-op implementation
refactor: Replace CustomProfileField with useFieldRefs for profile form
refactor: Optimize edit profile screen imports and custom attributes handling
refactor: Move custom attributes logic to remote actions in user.ts
address PR reviews
test: Add tests for custom attributes in edit profile
test: Add tests for EditProfile component with custom attributes
fix: Add UserModel type assertion to currentUser in edit profile tests
test: Add tests for ProfileForm custom attributes functionality
test: Add comprehensive tests for useFieldRefs hook
test: Add tests for fetchCustomAttributes and updateCustomAttributes
add tests
remove unneeded files
review changes
remove counter from hook
remove package.resolved
create interface for reuse of record
* fix signature type
* feat: added new check for isAudio and added the supported mime types
* feat: adding the progress and audio on the audio file message
* feat: finishing the layout of the audio_file
* feat: play and pause audio
* feat: update the progress bar when audio is playing
* feat: update the timeframe of the audio
* feat: update with the new design
* feat: adding download and preview
* feat: creates a hook for the file download and preview
* feat: adding useCallback to make the return stable
* fix: iOS issue when playing in loop
* feat: adding localization for the error
* fix: removing code tha was inserted for debug
* feat: add a new line on the en.json
* fix: fixing types
* feat: adding the onSeek method inside the progress bar
* feat: changing progress value to animated value
* feat: changing to GestureDetector and making the seek method work
* feat: adding a touchable without feedback to prevent the audio to triggering other page
* feat: adding the drag on the seek method
* feat: making the download button more gray
* fix: fix tests
* fix: prevent onProgress from clearing the seconds when the audio is paused
* feat: clamping the position of the cursor to never be dragged offscreen
* feat: enhancing the experience of dragging the cursor on the progress bar
* feat: differentiate between the throttles
* feat: remvoing the aac audio files support
* feat: pausing if the focus has changed
* feat: render differently the audio file when in the files list
* refactor: optimize audio file component by using useCallback for event handlers
* refactor: extract stopPropagation function for better readability in AudioFile component
* feat: implement custom useThrottled hook and replace lodash throttle in AudioFile component
* refactor: update useThrottled hook to accept a generic callback type
* fix: loading of uri of audio files after merge
* feat: add audioFile style to enhance layout for audio files
* fix: tests
* Add tests for hooks/android_back_handler
* Add tests for hooks/gallery
* Add tests for hooks/files
* Add tests for hooks/emoji_category_bar
* Add tests for hooks/markdown
* Increase more coverage for hooks/gallery.ts
---------
Co-authored-by: yasserfaraazkhan <attitude3cena.yf@gmail.com>
* refactor: started with draft, done until new tabs for draft
* refactor: change the query and added the screen for draft
* added condition for fetching draft for channel delete or not
* refactor: added draft screen
* linter fixes
* Added draft post component
* added avatar and header display name for the draft post list
* added channel info component
* channel info completed
* proper naming
* added image file markdown acknowledgement support
* draft actions
* Fix the draft receiver in drafts
* separated send message handler
* Done with send drafts
* done with delete drafts
* change save to send draft
* handle lengthy message with show more button
* done with persistent message edit, send and delete drafts
* added alert for sending message
* added update at time for the drafts
* en.json extract fix
* Updated dependencies for useCallback
* refactor: added drafts list to animated list
* added swipeable component and delete conformation for drafts
* done with rendering of images in markdown for drafts
* en.json issue fixed
* fix en.json issue
* refactor: en.json fix
* addressed review comments
* updated image metadata handling code
* linter fixes
* added the empty draft screen
* linter fix
* style fix
* back button an android takes to the channel list page
* en.json fix
* draft actions theme compatible
* CSS fix for draft channel_info and avatar component
* removed the badge icon and change font style drafts
* fix send alert sender name for GMs
* updated snapshot
* added testId to the drafts components
* updated send draft test id
* clicking on draft takes to the channel
* Added toptip for draft tours
* intl extract
* Rebase to main and reverted local testing changes
* Added tooltip for drafts
* addressed review comments
* reset navigation when click on a draft in draft tabs
* fix the theme issue and navigation issue
* reverted back the draft click navigation changes
* observing draft when hitting back button
* removed the unwanted animiation
* updated regex for parsing markdown
* removed unnecessary checks and change folder name
* removed react memo and merge unwanted observes function
* removed unnecessary comments
* changed the name for observing and querying draft function
* removed memo from component level
* Text to FormattedText component
* Text to formatted text, change image name
* added confirmation modal for deleting draft from bottomsheet
* using common send_handler for both draft and post
* removed magic number for tooltip and bottomsheet
* renamed channel_info to draft_post_header
* text to formattedText for Edit drafts
* removed unnecessary changes
* minor fixes
* mounting draft only when there is draft
* map to reduce
* renamed SwipeableDraft to DraftSwipeAction
* name fixes
* isValidUrl to isParsableUrl and added test
* added test and addressed minor review comments
* added inline component for the duplicate code
* inlt fixes
* clearDraft is not optional
* optimised categories_list.tsx component
* Swipeable to ReanimatedSwipeable, TouchableWithoutFeedback to Pressable and folder name changes
* Added comment and disabled eslint rule for showing warning
* fixed component file name
* minor'
* Removed deprecated Animated createAnimatedComponent flatlist
* added test for missing protocol check
* import change for SwipeableMethod
* active tab for tablet view
* Updated the drafts icons
* Updated compass-icon version to v0.1.48
---------
Co-authored-by: Mattermost Build <build@mattermost.com>
* MM-56899 - prevent app block when setting custom status if no internet
* remove alert and use build in error message
* remove unused translations
* implement pr feedback
* keep function in local file
* remove unnecessary change
* fix placeholder position
* block the done button while the server replies
* add close button to the modal
* 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
* Add test notification menu
* Reduce the minimum version for testing purposes
* Address feedback
* Add missing strings
* Address feedback
* Fix snapshots
* Bump version limit and use correct link
* Fix tests
* Fix URL issues
* fix: MM-58164 search text hides behind textbox
* clean up unit test for useCollapsibleHeader
* simplify math
* unlock doesn't need to use useCallback as it doesn't have any deps
* revert changes on unlock
* using lockValue & headerOffset directly into children props
* disable scrolling to prevent scrollValue from being updated
* properly snapping flatlist to the proper spot in a few scenarios
---------
Co-authored-by: Mattermost Build <build@mattermost.com>