Commit graph

852 commits

Author SHA1 Message Date
Mattermost Build
c19fd35557
Mobile-side for MM-65084 (#9115) (#9169)
* Mobile fix for MM-65084

* Changing test/setup.ts to use a deterministic fill

This avoids the ci issue about parenthesis and is more clear that this is just a fixed sequence for testing, similar to randomUUID above.

* Add setBearerToken and setCSRFToken to Client definition

* Use setClientCredentials and memoize createPkceBundle

* Restoring the preauthSecret back to the Client constructors

This came out of a response to MM-65085: Support Pre Shared Password on server connect where preauthSecret was added in the buildConfig. Claude (correctly imo) identified this as now redundant and so removed it but it is valid to keep it as well. In any case, putting it back to be consistent with ClientTracking and ClientBase.

* Rename PKCE to SAML based terminology, similar to server

* Fix lint issue with too many blank lines at eof

* Removing plain on mobile side

---------


(cherry picked from commit 2d6a5d5097)

Co-authored-by: JG Heithcock <jgheithcock@gmail.com>
2025-09-30 09:25:21 +03:00
Mattermost Build
ab2be60ed4
Fix playbooks bottom sheet not scrolling on ipad (#9137) (#9166)
* Fix playbooks bottom sheet not scrolling on ipad

* Address copilot feedback

(cherry picked from commit 167d0c6579)

Co-authored-by: Daniel Espino García <larkox@gmail.com>
2025-09-29 08:42:33 +03:00
Mattermost Build
3c3973eaa5
Add onPress on full chip (#9134) (#9154)
* Add onPress on full chip

* Address feedback

* Fix test

(cherry picked from commit d4fb05d4bb)

Co-authored-by: Daniel Espino García <larkox@gmail.com>
2025-09-29 08:32:50 +03:00
Mattermost Build
3a06691a83
Add set due date functionality to playbooks (#9091) (#9126)
* Add set due date functionality to playbooks

* Fix i18n

* Fix test

* Add tests

* Address feedback

* Remove unneeded line break

* Fix test

(cherry picked from commit 0df334dd2f)

Co-authored-by: Daniel Espino García <larkox@gmail.com>
2025-09-12 17:52:35 +03:00
Mattermost Build
9db6b0c89d
Add select user screen to select owner and task assignee (#9089) (#9124)
* Add select user screen to select owner and task assignee

* Fix i18n

* Add tests

* Address feedback

* Fix test

* Address UX feedback

* Fix test

* Put the no assignee button inline with the search

(cherry picked from commit a5d7bf7db4)

Co-authored-by: Daniel Espino García <larkox@gmail.com>
2025-09-12 13:23:21 +03:00
Daniel Espino García
82c7787dc4
Do not show the playbooks item on DMs/GMs (#9098)
Co-authored-by: Mattermost Build <build@mattermost.com>
2025-09-09 09:53:38 +02:00
Daniel Espino García
b227837fa5
Add playbooks edit command functionality (#9084)
* Add playbooks edit command functionality

* Fix tests

* Add tests

* Remove option to change command when the run is disabled (not participant or finished)

* Fix tests

* Address feedback

* Fix test

* Remove unneeded variables
2025-09-08 14:29:15 +02:00
Felipe Martin
f50056f57b
MM-65085: Support Pre Shared Password on server connect (#9082)
* feat: add shared server password to server setup

* feat: allow editing the sever

* refactor: changed password -> secret, styling and tests

* e2e: draft e2e tests

* chore: lint fix

* feat: also send preauth secret header when using native share

* fix: removed unused server database migration

credentials are being stored in the keychain

* i18n: added missing english translations

* test(e2e): simplified connection tests

* test(e2e): rework

* refactor: remove setBearerToken

* chore: restore migrations the way it was

* chore: reverted file to original state

* chore: removed unneeded test and renamed password to secret

* chore: function version

* chore: updated forms i18n keys

* chore: remove if from test

* chore: unneeded variable

* fix: add missing key on object list

* refactor: swift keychain access to retrieve all credentials in one call

* revert: edit server screen

* refactor: credentials use getGenericCredential

* fix: objc code calling old method

* fix: added scroll to login screen

* chore: variable names

* fix: avoid inline styles

* fix: Improved appVersion positioning

* Update app/screens/server/form.tsx

Co-authored-by: Matthew Birtch <mattbirtch@gmail.com>

* feat: show error message on 403

* Revert "feat: show error message on 403"

This reverts commit f41630c767e10211adf1885321ceefd8a0931e32.

---------

Co-authored-by: Matthew Birtch <mattbirtch@gmail.com>
2025-09-01 11:24:15 +02:00
Daniel Espino García
8aa13c4e0a
Add bottom sheet for playbooks checklist items (#9065)
* Add bottom sheet for playbooks checklist items

* i18n extract

* Remove unneeded test case

* Add tests

* Address feedback

* Remove unneeded useCallback and add needed useMemo

* Address feedback

* Add missing translation string
2025-08-25 12:37:29 +02:00
Daniel Espino García
0c4a42a06a
Remove tand prevent double tap (#9078)
* Remove the t function and all wrong uses of preventDoubleTap

* Fix existing typo

* Fix tests

* Address comments

* Fix test
2025-08-25 12:03:01 +02:00
Daniel Espino García
a27c82da90
Refactor and cleanup of option item (#9067)
* Refactor and cleanup of option item

* Fix tests and minor cleanup

* Fix bug and address feedback
2025-08-19 14:01:56 +02:00
Rajat Dabade
1dce89c97e
Reschedule time picker should open with post's scheduled date time (#9035) 2025-08-04 19:22:35 +05:30
Elias Nahum
40d8a0cbb4
Playbooks update (#9039)
* 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
2025-07-29 21:55:41 +08:00
Elias Nahum
5eb3a1ab41
Refactor gallery gestures (#8752) 2025-07-22 14:00:57 +08:00
Daniel Espino García
19a258c755
Fix misalignment in quick actions item (#9000)
* Fix missalign in quick actions item

* Fix flaky test

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
2025-07-21 12:39:37 -04:00
Rahim Rahman
9d67acb8cc
fix(MM-63596): custom theme cannot be reselected (#8960)
* initialTheme should not be a dependent of useCallback since its a ref
* a few cleanup on test to make it more clearer
* add a bit more description
* fix(MM-64710): changing themes repeatedly in rapid succession cause the theme to not register (#8980)
* add more test, doubleTap prevention test
* changes based on comments
* remove the use of currentTheme
* consolidate handleSelectTheme with setThemePreference
* add comment to explain why we're storing customTheme in a state
2025-07-18 06:48:29 -06:00
Daniel Espino García
5a034aa51f
Fetch playbooks when we reconnect and we are on a channel (#8993)
* Fetch playbooks when we reconnect and we are on a channel

* Fix test

* Address feedback
2025-07-18 11:37:43 +02:00
Rajat Dabade
bfe6852ae7
Fix stale search results when files are deleted from posts (#8985)
* Fix stale search results when files are deleted from posts

* Minor

* cleaned the  dependency from useDidUpdate to not trigger unnecessary API call

* Added comment
2025-07-14 18:03:24 +05:30
Rajat Dabade
b5969fdfb4
Edit mode when no text and no attachment on save calls delete post (#8984)
* Edit mode when no text and no attachment on save calls delete post

* Removed the hasAttachment and isPost props to use shouldDirectlyReact props
2025-07-14 17:55:27 +05:30
Daniel Espino García
bb7ff622af
Add Playbooks read-only support for mobile devices (#8978)
* 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>
2025-07-14 09:21:37 +02:00
Rajat Dabade
10cbd31801
MM-64415 Attachment style updated for draft and Edit post screen (#8961)
* MM-64415 Attachment style updated for draft and Edit post screen

* Minor

* constants

* Addressed Review comments

* UX review comments

* Error state changes

* Fix the style issue for retry state on the attachment

* Fix some styling

* Fix the space extra char issue in post
2025-07-07 16:24:27 +05:30
Guillermo Vayá
7891079a61
[MM-64358] don't save unneeded custom profile attributes (#8971)
* send only needed changes, take saml into account

* adhere to naming conventions

* fix tests

* address review comments
2025-07-02 17:49:55 +02:00
Rajat Dabade
6bdcf2be49
Remaining test for draft and Scheduled post (#8887)
* Added test for draft_scheduled_post and header component

* Added test for drafts_button/index.ts

* Added test for send_button/index.ts

* Added test for servers/scheduled_post.ts queries

* Added test for global_scheduled_post_list/index.ts

* Added test for rescheduled draft index file and minor update

* Added test for core option and index

* Added test for scheduled post options

* Added test for send_draft index file

* updated test for draft_scheduled_post and draft_scheduled_post_header

* Updated test for drafts_button index

* Updated test for send_button index

* Updated test for server/scheduled_post

* Updated test for global_scheduled_post/index

* removed the unnecessary config and team data to populate in db for test

* Update app/components/draft_scheduled_post/draft_scheduled_post.test.tsx

Co-authored-by: Daniel Espino García <larkox@gmail.com>

* linter fixes

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
Co-authored-by: Daniel Espino García <larkox@gmail.com>
2025-07-01 13:47:02 +05:30
Lucas Reis
d38bf60050
Disable Animations when Accessibility configuration is to remove it (#8743)
* 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
2025-06-26 11:25:48 +02:00
Rajat Dabade
dae4b75720
Ability to show quick action and add files to edit post (#8926)
* 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
2025-06-25 16:04:08 +05:30
Maria A Nunez
dbb6890fe6
Update additional images branding (#8672)
* Updated search empty images

* Updated channel empty state images

* Styling

* Added unreads, threads, mentions and saved messages empty state images

* Removed withTheme

* Update snapshot

* Update review app image

* Updated loading error svg

* Added draft svg

* Removed unused image

* update snapshots
2025-06-20 11:41:26 -04:00
Rajat Dabade
8e1af4298d
Viewing Files in Edit mode in mobile with ability to delete and save (#8918)
* 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
2025-06-20 01:03:57 +05:30
Elias Nahum
b91e42615f
Secure Files and preview PDF inline (#8844) 2025-06-19 15:30:56 +08:00
Daniel Espino García
c3b9285f18
Fix style issues with scroll on report a problem screen (#8906) 2025-06-16 11:30:58 +02:00
Guillermo Vayá
972bd34da6
[MM-62700] User Attribute types (#8903)
* add basic types to user_profile

* fix storing multiselect in DB

* fix storing multi-select on db

* add tests

* add tests for select-multiselect

* imporove testing

* improve intl, add tests

* address comments and tests

* review comments

* more test refactoring

* remove styling tests

* remove styling tests

* small improvements

* nitpick

* improve messaging

* safer stringify

* fix tests
2025-06-12 10:59:13 +02:00
Guillermo Vayá
efeabb48a2
[MM-64358] Don't send custom profile info if the feature is not enabled (#8904)
* don't send custom profile info if the feature is not enabled

* add tests

* missing changes

* missing check

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
2025-06-11 13:22:51 +02:00
Daniel Espino García
cdd91dbbb8
Standardize tags and chips through the app (#8856)
* Standardize tags and chips through the app

* Add missing texts

* Fix tests and snapshots

* Address feedback

* Fix snapshots

* Address UX feedback

* Apply text styles to outer text component

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
2025-06-11 10:11:05 +02:00
Daniel Espino García
9fcc6e580d
Fix GM/DM unread threads highlighting all teams as unreads (#8905)
* Fix GM/DM unread threads highlighting all teams as unreads

* Use options object instead of boolean flags

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
2025-06-10 15:30:58 +02:00
Daniel Espino García
2ad6fec90f
Unify buttons (#8865)
* Unity buttons

* Fix texts and use defineMessages

* Update snapshots

* Fix disabled style
2025-05-30 15:59:15 +02:00
Daniel Espino García
6c53533080
Standardize tabs across different components (#8691)
* 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>
2025-05-28 16:23:37 +02:00
Guillermo Vayá
db569fe2c3
[MM-62565] Custom Profile attributes websocket changes (#8758)
* user_info websocket listening

* add to edit profile

* add tests

* fix user_info test

* improved types

* add websocket tests

* fix tests to adapt to the database

* temp

* fix test, remove unneeded file

* Update app/actions/remote/custom_profile.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix test and storing fields and attributes

* consistency

* remove await from loop

* remove db from component

* simplify functions

* address reviews

* adress review comments

* fix promises not being fulfilled before ordering

* fix tests

* address comments

* address review comments

* test_helper

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-05-27 16:24:40 +02:00
Guillermo Vayá
975495eb92
simplify managing crossteams (#8879) 2025-05-23 11:01:06 +02:00
Pablo Vélez
1569f712d2
Mm 63935 abac end user indicators (#8848)
* 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>
2025-05-19 15:34:03 +02:00
Elias Nahum
934ed2a773
Revert "MM-63935 - abac end user indicators db changes (#8849)" (#8859)
This reverts commit d838f74273.
2025-05-15 06:15:20 +08:00
Pablo Vélez
d838f74273
MM-63935 - abac end user indicators db changes (#8849)
* 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
2025-05-14 23:55:47 +02:00
Daniel Espino García
a5fbd66320
Fix edit post scroll (#8845)
* Fix edit post scroll

* Minor improvement on readability
2025-05-13 17:09:25 +02:00
Daniel Espino García
af0a7525c8
Refactor Open Profile (#8746)
* Refactor Open Profile

* Add missing changes

* Fix tests

* Fix tests

* Address feedback
2025-05-13 17:07:13 +02:00
Vasily Belousov
7c3914bd13
[MM-61995] Correct copying instructions when long-pressing an email in messages & headers (#8798)
* feat: fixed email copy interface

* feat: changed message when long-pressing an email on mobile in messages & headers

* implemented changes: message decriptors outside component; email/url check and cleanHref outside renderContent function
2025-05-13 11:56:38 +08:00
Daniel Espino García
d27c56af88
Add error boundary to latex code (#8822)
* Add error boundary to latex code

* Add test
2025-05-06 09:48:36 +02:00
Harshil Sharma
45773e359d
Renamed premium SKU to Enterprise Advanced (#8819) 2025-05-02 05:12:27 +05:30
Christopher Poile
65ca3bffa3
[MM-63509] Fix: Protect against license can be undefined (#8784)
* protect against license can be undefined

* linting
2025-04-29 16:56:57 -04:00
Rajat Dabade
38f6011caf
Android: Fix Rescheduling pop back calendar (#8810) 2025-04-29 18:04:32 +05:30
Daniel Espino García
f963855875
Fix Find channels not being interactable (#8794)
* Fix Find channels not being interactable

* fix(e2e): Uncomment find channel tests

* Fix tsc

* Use platform select

---------

Co-authored-by: yasserfaraazkhan <attitude3cena.yf@gmail.com>
2025-04-29 13:56:22 +02:00
Rajat Dabade
098c219932
Unlicensed server should not show the tooltip on channel send button (#8806)
* Unlicensed server should not show the tooltip on channel send button

* Added config and license check for fetching and displaying scheduled post
2025-04-29 17:21:09 +05:30
Jesse Hallam
e3e4fe245c
Fix direct message screen showing deactivated accounts (#8795)
* Fix direct message screen showing deactivated accounts

Fixes MM-63374. The create direct message screen was showing deactivated accounts in the user list. Fixed by:
1. Setting allow_inactive: false in userSearchFunction when searching profiles
2. Setting active: true in userFetchFunction when fetching profiles
3. Added a test to verify that deactivated users don't appear in the search results

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Fix test for deactivated users in DM creation screen

Updated the test to properly handle quotation marks that differ between CI and local environments.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-04-25 10:22:41 -03:00