Commit graph

80 commits

Author SHA1 Message Date
Daniel Espino García
cff12f7182
Enable exhaustive deps in the repo (#9508)
* Enable exhaustive deps in the repo

* Add tests for the new hooks

* Update claude.md

* Remove pre-commit overwrite
2026-02-18 11:56:16 +01:00
Daniel Espino García
c3b141e77c
[MM-66858] Fix email notification screen not updating (#9364) 2026-01-12 15:55:55 +01:00
Felipe Martin
af2c35b03b
feat: edit server pre-authentication secret (#9128)
* feat: show potential pre-auth secret error on server create

* chroe: address comments

* chore: updated message

* feat: read response header to check error source

* fix: i18n

* chore: rename pre-auth to just auth

* Add show/hide toggle to authentication secret field

Modified server form to match login form UX with password visibility toggle

* Add preauth secret field to edit server with validation and auto-open options

* chore: added missing 18n

* Increase form padding for better error message spacing

* Fix preauth secret removal when not provided

* Change edit server title from 'Edit server name' to 'Edit server'

* Add custom ping function and improve validation in edit server

* chore: revert en_AU

* chore: improved error message

* feat: animate advanced options

* fix: auth secret label being cropped

* refactor: doPing
2025-11-12 16:07:19 +01:00
Rahim Rahman
72b97f60f5
revert: floating banner & low connectivity (#9254)
* Revert "feat(MM-65625): low connectivity feature toggle in advance settings (#9191)"

This reverts commit c872e2e2b1.

* Revert "feat(MM-65145): Network connectivity/performance observer (#9173)"

This reverts commit 597e03d7d8.

* Revert "feat(MM-65625): floating banner (#9162)"

This reverts commit 5887c3ab46.

* Revert "feat(MM-65625): enhance navigation overlay management (#9165)"

This reverts commit f1554f0341.

* revert advanced.test.tsx changes
2025-11-04 07:15:51 -07:00
Daniel Espino García
9272efe2a8
Add playbooks unified view (#9177)
* Add playbooks unified view

* Update tests

* Fix client function not throwing

* Fix types
2025-10-13 21:02:24 +02:00
Rahim Rahman
c872e2e2b1
feat(MM-65625): low connectivity feature toggle in advance settings (#9191) 2025-10-12 23:21:11 -06:00
Yair Szarf
42988fddc3
Add a notification disabled notice to notification settings (#9145)
* Adding the notification disabled notice

* Change the color of the icon on the section notice to red.

* Fix Linter Issues

* Add new line due to CI failure

* Adressing pull request comments and change requests.

* i18 Strings alphabetical order

* result of `npm run i18n-extract`

* Add a couple more tests for notifications

* Remove two unneeded styles

* fix linter issue
2025-10-01 08:20:22 -04:00
Daniel Espino García
3efc301da5
Add Floating Label Autocomplete Selector (#9119)
* Add Floating Label Autocomplete Selector

* Address feedback

* Revert unintended change

* Move database connection to index file
2025-10-01 13:31:16 +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
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
Elias Nahum
b91e42615f
Secure Files and preview PDF inline (#8844) 2025-06-19 15:30:56 +08: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
2ad6fec90f
Unify buttons (#8865)
* Unity buttons

* Fix texts and use defineMessages

* Update snapshots

* Fix disabled style
2025-05-30 15:59:15 +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
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
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
Daniel Espino García
5c2153f83b
Add Report a Problem functionality (#8605)
* Add Report a Problem functionality

* update cache pinned SHA version from 4.0.2 to 4.2.0

* Address feedback

* Fix tests

* Fix some issues and update kotlin coroutines version

* Fix delete file for iOS

* Bump 1 more version for coroutines

* Use rxjava instead of kotlin coroutines to avoid security issue

* Move path prefix to avoid test error

* Address feedback

* Address feedback

* Address feedback

* Use mailto on iOS

* Fix tests related to button changes

* Address feedback

* Update icon and fix onboarding buttons

* Fix test

---------

Co-authored-by: Angelos Kyratzakos <angelos.kyratzakos@mattermost.com>
Co-authored-by: Mattermost Build <build@mattermost.com>
2025-04-24 11:12:55 +02:00
Jesse Hallam
15f59b7eee
[MM-63728] Add license load metric to About screen (#8769)
* Add license load metric to About screen

- Add REST endpoint to fetch license load percentage
- Display load metric in About screen next to server version

Fixes: https://mattermost.atlassian.net/browse/MM-63728

* MM-63728: Address PR feedback from enahum

- Move license load metric fetch to a remote action
- Use isMinimumServerVersion to check for server 10.8.0 or higher

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

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

* MM-63728: Simplify getLicenseLoadMetric to directly return number

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

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

* MM-63728: Move getLicenseLoadMetric to dedicated license.ts file

- Create new remote action file specifically for license-related functions
- Add test file for the license actions
- Update imports in about.tsx

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

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

* MM-63728: Remove redundant license check in about.tsx

- Rely on getLicenseLoadMetric to handle the license check

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

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

* MM-63728: Update E2E tests for license load metric

- Add license load metric test IDs to about screen
- Update E2E test to check for load metric when license is enabled
- Handle cases where server might not support the feature

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

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

* recover app/actions/remote/general.ts

* MM-63728: Return error from getLicenseLoadMetric instead of silent failure

- Remove silent failure and debug logging
- Return the error object when API call fails
- Update the About component to handle possible error responses
- Update tests to verify error handling

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

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

* MM-63728: Remove groupLabel parameter from getLicenseLoadMetric

- Remove groupLabel parameter from client getLicenseLoadMetric method in interface and implementation
- Update client tests to reflect the parameter removal
- Update license action test to verify no parameter is passed

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

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

* simplify about screen checks

* MM-63728: Use jest.mocked and real version checks in license tests

- Removed isMinimumServerVersion mock, letting tests use real version checking
- Used proper type casting for mock Client
- Added comprehensive version compatibility test cases
- Simplified test setup

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

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

* MM-63728: Remove redundant server version test

- Removed redundant test for different server versions
- Existing tests already cover the necessary version compatibility cases

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

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

* MM-63728: Refactor license test to use better mocking pattern

- Refactored the test file to use a better mocking pattern similar to custom_emoji.test.ts
- Simplified mock declarations using jest.mock()
- Added type import for Client for better readability
- Improved type casting for mock objects

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

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

* npm run fix

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-04-17 17:29:47 -03:00
Daniel Espino García
85e01a7fb6
Add model mocks to TestHelper (#8715)
* Add model mocks to TestHelper

* Address feedback
2025-03-28 09:40:08 +01:00
Elias Nahum
d84a0afd3a
Avoid unnecessary re-renders (#8673)
* 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
2025-03-13 21:28:48 +08:00
Elias Nahum
6446eb96a3
fix keyboard blocking input on mentions notifications settings (#8664) 2025-03-13 07:53:24 +08:00
Daniel Espino García
c8f42ee67e
Add the Component Library to the app (#8319)
* Add the Component Library to the app

* fix i18n

---------

Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
2025-02-04 13:32:55 +01:00
Daniel Espino García
e0992c0bf6
Add test notification tool (#8271)
* 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
2024-11-11 10:22:57 +01:00
Christopher Poile
92bdb2847b
[MM-57486] [MM-58008] Calls: Mobile ringing for incoming calls (#7984)
* notification ringing, settings screen, native code patch, ringing mp3s

* i18n

* play preview on first press

* prevent playing from background (only affects Android) to match iOS beh

* stop ringing/vibration on entering background

* ring when coming back from background and new incoming call is present

* no push notification sound when it's a call; improve ringing

* move sounds to asset folder; copy on postinstall for android bundling

* make Ringtone type a string enum

* make Android ring async + await ring and stop; changes from PR comments

* missing fields after merge

* release lock on an exception

* cancel sample ringing when turning notifications off

* copy sound files for android build

* typo

* update snapshots

* testing if the problem is copying the mp3 files

* fix android mp3 assets when building for non-release

* add sounds to .gitignore

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
2024-07-03 10:22:46 -04:00
Elias Nahum
b8c088cc70
Upgrade RN as well as update or replace other dependencies (#8011)
* start upgrade to RN 74

* migrate react-native-fs to expo-file-system

* exclude expo-asset module

* fix database manager remove directory

* fix: android network helper

* include expo on android

* temporarily disable android dep lock

* replace react-native-create-thumbnail with expo-video-thumnails

* update patches file version

* fix android build on 74

* create local library to replace MattermostManaged, Notifications and SplitView modules with new arch support

* migrate app to use new mattermost-rnutils library

* remove unused flipper class for android unsigned

* fix mattermost-rnutils android foldedObserver lifecycle

* use mattermost-rnutils on Android

* use mattermost-rnutils on iOS

* path react-native-navigation to not crash when activity is not NavigationActivity

* create local library for android share extension with new arch support

* Replace ShareModule with @mattermost/rnshare library

* remove ShareModule from android native code

* update react-intl

* update nodejs to 20.x.x npm to 10.x.x and dev deps

* update @gorhom/bottom-sheet

* use MattermostShare conditionally based on the platform

* update @react-native-camera-roll/camera-roll

* remove unused react-native-calendars

* fix metro config

* fix terminate session race condition

* remove unused analytics

* replace react-native-device-info with expo-application and expo-device

* update @react-native-clipboard/clipboard

* update @react-native-community/datetimepicker

* update @react-native-community/netinfo

* update @sentry/react-native

* update react-native-document-picker

* update react-native-gesture-handler

* update react-native-share

* update react-native-svg and react-native-svg-transformer

* update react-native-vector-icons

* update babel

* update react-native-shadow-2

* update semver

* remove react-native-svg-transformer and convert svg files to svg components

* fix @mattermost/rnshare new-arch build on android

* remove react-native-create-thumbnail resolution in build.gradle

* create @mattermost/hardware-keyboard library to replace hw-keyboard-events

* fix hardware-keyboard library

* fix rnutils library

* create @mattermost/keyboard-tracker library

* replace react-native-keyboard-tracking-view with @mattermost/keyboard-tracker

* fix: rnutils to not crash on lateinit context

* fix: rnutils delete database

* revert changes to session_manager

* Removed react-native-webview and added expo-web-browser instead

With expo-web-browser we no longer need the webview for SSO login
the SSO login is now done by using "custom Chrome tabs" on Android
and ASWebAuthenticationSession on iOS

* remove patch for react-native-keyboard-tracking-view

* replace react-native-linear-gradient with expo-linear-gradient

* replace react-native-in-app-review with expo-store-review

* fix: shared group database directory on ios

* replace react-native-fast-image with expo-image

* remove unusued type def for react-native-keyboard-tracking-view

* replace react-native-elements and react-native-button with @rneui

* node version

* update sizzling methods

* fix tests using jest-expo

* replace jail-monkey with expo-device

* update babel deps

* update typescript eslint

* update rn and expo

* react-native-document-picker @react-native-camera-roll/camera-roll @react-native-community/datetimepicker react-native-reanimated react-native-safe-area-context

* update patches

* update @sentry/react-native

* upgrade react-native-navigation

* update expo & expo-image

* upgrade to working version of @sentry/react-native

* update node, cocoapods, bundler, fastlane versions

* @testing-library/react-native and eslint-plugin-jest

* fix: FloatingTextInput causing a crash with reanimated

* update sentry, localize, @types/lodash and uuid

* fix floating text input label

* update react-native-video

* fix: cannot calculate shadow efficiently on some components

* fix: reduce motion warning for bottomSheet

* fix: shadow on YouTube component

* update react-native-webrtc expo and @typescript-eslint

* audit fix

* fix swizzling bad merge

* temp use of github dependency for @mattermost libraries

* feedback review

* feedback review

* npm audit fix

* update bundle deps

* update @mattermost/react-native-turbo-log

* update deps
2024-06-19 09:33:45 +08:00
Cedric Ong
6daa77f0da
remove usages of isTimeZoneEnabled (#7769) 2024-01-30 13:22:55 +01:00
Elias Nahum
106324335c
MM-56542 fix custom theme selection (#7762) 2024-01-18 06:00:21 +08:00
M-ZubairAhmed
cc96982d24
MM-53479 : Improve design of keyword that trigger notification in mobile (#7458) 2024-01-13 06:56:22 +00:00
Tanmay Thole
15fb6363aa
fix: height for multiple line floating text input (#7688) 2023-12-13 09:50:18 +01:00
Elias Nahum
edef4ec4a3
Update libraries and dependencies (#7678)
* update js dependencies

* update react-native libraries

* update watermelonDB

* update RN to 0.72.7

* update fastlane

* fix remove_markdown/at_mention import

* update mattermost libraries

* update fastlane deps

* remove haptic-feedback patch

* update okhttp to 4.12.0 and patch netinfo to accurately identify VPN connections

* create ImaegStyles intersection type
2023-11-25 07:46:13 +08:00
Harshal sanghvi
128be0994e
fixed theme save on android back button (#7579) 2023-10-30 09:17:00 -04:00
Aditya Pratap Singh Hada
28dc688fc3
Mm 28872 configure links (#7551)
* Fix: configured help link redirect according to location

* Fix: import statements
2023-10-03 11:09:01 +02:00
Daniel Espino García
ba52acb26f
Add GM as DM feature support (#7515)
* Add GM as DM feature support

* Minor fix

* Address feedback

* Fix case for non set channel notify prop

* Fix strings
2023-09-26 18:35:40 +02:00
Daniel Espino García
d28ee34aa3
Make androidBackHandler to update if the handler changes (#7519) 2023-08-31 10:31:55 +02:00
Lucas Reis
833a0fc028
Feat: Adds the Info snackbar when the About info is copied (#7488)
* feat: adding the snackbar when the version info was copied

* fix: PR review
2023-08-08 08:40:30 +02:00
Elias Nahum
4a79147402
Fix re-selection of custom theme (#7470) 2023-07-26 12:48:14 -04:00
Sudhanva-Nadiger
37b245d461
Feat: add copy to clipboard button in "about" mattermost page (#7134)
* feat: add copy to clip board button in about page

* add intl format text

* make suggested changes.

- fix: wrap copyToClipBoard function in useCallBack
- remove annonymous function onPress, provide function pointer
- make code readable in copyToClipBoard function

* formatting

* small fix

* change copy to clipboard position

- created a custom button eith icon and text
- usd button theme color

* button styling

* divider color

* use predefined btn element

* Add e2e test for copy info button

* feat: refactor the styles for thin lines

- fix: change touchable opacity to view
- add margin top to footer text

* change icon size to 15

* remove unnecessary view

* add config to dependency of callback

* suggeste changes on onClick func

* modified en.json file after running i18-extract

* Improve translations

* Address feedback

* Fix non updated default messages

---------

Co-authored-by: Daniel Espino García <larkox@gmail.com>
2023-07-26 09:00:06 -04:00
Daniel Espino García
162cdfb21d
Handle currentUser not available throught the app and refetch it (#7333)
* Handle currentUser not available throught the app and refetch it

* Address feedback
2023-05-05 15:40:59 -04:00
Elias Nahum
784b05fe97
Upgrade Dependencies (#7299)
* upgrade reanimated

* update devDependencies

* upgrade react-intl

* update react-native and some dependencies

* update react-native-permissions

* update RN

* use Share sheet for Report a problem

* update Sentry

* remove step to downloadWebRTC

* update detox deps

* feedback review
2023-04-21 12:16:54 -04:00
Elias Nahum
d61fbd3180
Various fixes (#7161)
* Save message draft when post input is unmounted

* Fix switch CRT on/off

* Handle iPad on Stage Manager

* iOS Share Extension to use LRU cache instead of file cache

* Support building android as aab

* use handleReconnect instead of appEntry on handleCRTToggled

* show skin tone selector tutorial after running all interactions

* Update app/actions/remote/preference.ts

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

* fix lint

---------

Co-authored-by: Daniel Espino García <larkox@gmail.com>
2023-02-24 13:02:05 +02:00
Elias Nahum
2fc1386b78
feat: Channel notification preferences (#7160)
* feat: Channel notification preferences

* feedback review

* use button color for the icon
2023-02-24 12:41:36 +02:00
Elias Nahum
64a59aad55
Filter unused preferences (#7015)
* small preferences refactor

* filter unused preferences and fix removal of preferences in the db

* Feedback review
2023-01-30 21:00:19 +02:00
Daniel Espino García
a9dc4ec90f
Use more verbose message on archive and don't make help link lowercase (#6952)
* Use more verbose message on archive and don't make help link lowercase

* Fix lint
2023-01-27 18:26:13 +01:00
Anurag Shivarathri
5160cf9212
[MM-49652] Setting to enable/disable CRT (#6999)
* Added settings

* Moved obj to variable

* Merge fix
2023-01-25 18:15:37 +05:30
Elias Nahum
7aa5bd0611
Update Dependencies and bug fixes (#7000)
* update dependencies

* update dependencies

* feedback review

* update @mattermost/react-native-turbo-mailer
2023-01-24 09:14:23 +02:00
Elias Nahum
001a6699fb
Cache push notification profile image and add logs (#6932)
* Cache push notification profile image and add logs

* Fix indent
2023-01-05 12:31:52 +02:00
Joseph Baylon
dd60257364
Detox/E2E Maintenance: Fix broken iOS e2e tests (#6917) 2022-12-30 14:01:24 -08:00
Tiago Correia
97a34fc0e0
[MM-46562] Add show/hide password function for login screen (#6612) 2022-12-23 16:42:34 +02:00
Joseph Baylon
56d2d57291 Detox/E2E Maintenance: Fix broken iOS e2e tests 2022-12-15 14:47:33 -08:00