mattermost-mobile-upstream/app/utils
Pablo Vélez 54731fa6ac
Mm 70299 channel labels display phase 1 (#10113)
* MM-70299 - display channel attributes in header, info and banner

* cover and expand channel attributes feature with UI and E2E tests

* Implement channel attributes lock and update related tests and API methods

* Enhance error logging and improve type definitions for channel attributes

* Handle error from setAccessControlGroupId in fetchAccessControlAttributeFields

* Refactor fetchAccessControlAttributeFields to include system ID handling and improve batch record persistence

* Address code review feedback: extract feature-flag constants, move DB-only helpers to query/local layers, refactor attribute chip styles, fix colour spelling, and add test coverage for value pruning and subtitle component

* Fix error handling in removeStoredFields function and delete obsolete end-to-end test file

* Add tests for removeStoredFields function and enhance property queries

* Fix removeStoredFields to recover group ID from classification anchor and clean all owned fields

* Fix batchRecords silently swallowing write errors in fetchAccessControlAttributeFields

* Remove unused visibility check for ChannelAttributeLabels in e2e tests

* Fix classification fetch cache and channel-attributes E2E lock contention

Do not stamp the classification banner cache when both access-control flags
are off, so turning a flag back on after a reload refetches fields.

Share the classification lock with the channel-attributes Detox suite and
stop unsetting ClassificationMarkings. Skip flag-on tests when the server
cannot enable ChannelAttributes.

Co-authored-by: mattermost-code <matty-code@mattermost.com>

* Scope access_control field prune to owned object types

handlePropertyFields(groupId) deletes every field in the group. The fetch
only returns system and channel fields, so same-group user/session rows
were removed on each refresh. Prune only system and channel fields, matching
removeStoredFields.

Co-authored-by: mattermost-code <matty-code@mattermost.com>

* fail channel attributes tests when feature enablement fails instead of silently reporting them as passed

* Compose all channel attribute values in banners with template resolution, mixed field support, and matching web colors

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: mattermost-code <matty-code@mattermost.com>
Co-authored-by: Mattermost Build <build@mattermost.com>
2026-09-17 21:37:43 +02:00
..
alerts On iOS, resuming after the 5-minute window showed no biometric prompt — (#10102) 2026-09-02 15:03:13 +08:00
channel [MM-69735] Improve DM call user experience (#10017) 2026-09-03 19:44:10 +00:00
deep_link [MM-66560] Fix channel links ending in channel IDs (#10158) 2026-09-15 11:28:03 -04:00
document Secure Files and preview PDF inline (#8844) 2025-06-19 15:30:56 +08:00
draft Migrate from RNN to Expo router (#9402) 2026-05-13 17:44:55 +08:00
emoji Migrate from RNN to Expo router (#9402) 2026-05-13 17:44:55 +08:00
file Mm 67525 bump min version (#9640) 2026-09-16 10:53:06 +00:00
gallery Migrate from RNN to Expo router (#9402) 2026-05-13 17:44:55 +08:00
general Channel banner display (#8735) 2025-04-08 11:15:18 +05:30
images Fix gallery image dimensions (#9247) 2025-11-10 19:18:27 +08:00
markdown Improve markdown code (#9164) 2025-11-04 10:05:56 +01:00
navigation Fix passing number strings through screen params (#9931) 2026-07-16 18:21:40 +02:00
notification Migrate from RNN to Expo router (#9402) 2026-05-13 17:44:55 +08:00
performance Migrate from RNN to Expo router (#9402) 2026-05-13 17:44:55 +08:00
permalink Migrate from RNN to Expo router (#9402) 2026-05-13 17:44:55 +08:00
post [MM-66230] Add AI-generated sparkle indicator to post headers (#9835) 2026-07-14 19:31:02 +00:00
post_list Migrate from RNN to Expo router (#9402) 2026-05-13 17:44:55 +08:00
role Migrate from RNN to Expo router (#9402) 2026-05-13 17:44:55 +08:00
scheduled_post Migrate from RNN to Expo router (#9402) 2026-05-13 17:44:55 +08:00
search Migrate from RNN to Expo router (#9402) 2026-05-13 17:44:55 +08:00
security On iOS, resuming after the 5-minute window showed no biometric prompt — (#10102) 2026-09-02 15:03:13 +08:00
server Migrate from RNN to Expo router (#9402) 2026-05-13 17:44:55 +08:00
snack_bar Migrate from RNN to Expo router (#9402) 2026-05-13 17:44:55 +08:00
svg Gekidou MultiServers second part (#5963) 2022-02-17 10:42:06 -03:00
tap Remove tand prevent double tap (#9078) 2025-08-25 12:03:01 +02:00
theme Migrate from RNN to Expo router (#9402) 2026-05-13 17:44:55 +08:00
thread Better handle threads sync (#8641) 2025-03-19 09:23:22 +01:00
url MM-70688 Autolink phone numbers in posts as tel: links (#10143) 2026-09-14 14:32:17 -04:00
user Remove tand prevent double tap (#9078) 2025-08-25 12:03:01 +02:00
apps.test.ts Migrate from RNN to Expo router (#9402) 2026-05-13 17:44:55 +08:00
apps.ts Make attachments and app bindings more robust yet secure (#8570) 2025-03-14 12:02:32 +01:00
bor.test.ts Ensured BoR post actions matches those in webapp (#9362) 2026-02-04 12:18:35 +05:30
bor.ts Ensured BoR post actions matches those in webapp (#9362) 2026-02-04 12:18:35 +05:30
buttonStyles.test.ts Add Report a Problem functionality (#8605) 2025-04-24 11:12:55 +02:00
buttonStyles.ts Standardize tags and chips through the app (#8856) 2025-06-11 10:11:05 +02:00
categories.test.ts Add model mocks to TestHelper (#8715) 2025-03-28 09:40:08 +01:00
categories.ts Add unit tests to Utils buttonStyles and categories (#8015) 2024-06-14 17:11:36 +08:00
channel_attributes.test.ts Mm 70299 channel labels display phase 1 (#10113) 2026-09-17 21:37:43 +02:00
channel_attributes.ts Mm 70299 channel labels display phase 1 (#10113) 2026-09-17 21:37:43 +02:00
classification.test.ts Mm 70299 channel labels display phase 1 (#10113) 2026-09-17 21:37:43 +02:00
classification.ts Mm 70299 channel labels display phase 1 (#10113) 2026-09-17 21:37:43 +02:00
config.test.ts Mm 68767 zero persistence (#9803) 2026-07-16 13:55:45 +02:00
config.ts Mm 68767 zero persistence (#9803) 2026-07-16 13:55:45 +02:00
custom_profile_attribute.ts [MM-62565] DB only custom profile attributes and fields (#8739) 2025-04-09 15:35:27 +02:00
database_errors.test.ts [MM-68315] Add autorecovery for database corruptions (#9900) 2026-07-13 18:02:35 +02:00
database_errors.ts [MM-68315] Add autorecovery for database corruptions (#9900) 2026-07-13 18:02:35 +02:00
date_utils.test.ts Add date/datetime field support with timezone features for Apps Forms (#9521) 2026-07-16 08:09:47 -06:00
date_utils.ts Add date/datetime field support with timezone features for Apps Forms (#9521) 2026-07-16 08:09:47 -06:00
datetime.test.ts Add date/datetime field support with timezone features for Apps Forms (#9521) 2026-07-16 08:09:47 -06:00
datetime.ts Add date/datetime field support with timezone features for Apps Forms (#9521) 2026-07-16 08:09:47 -06:00
dialog_conversion.test.ts Add date/datetime field support with timezone features for Apps Forms (#9521) 2026-07-16 08:09:47 -06:00
dialog_conversion.ts Add date/datetime field support with timezone features for Apps Forms (#9521) 2026-07-16 08:09:47 -06:00
dialog_utils.test.ts Add date/datetime field support with timezone features for Apps Forms (#9521) 2026-07-16 08:09:47 -06:00
dialog_utils.ts Add date/datetime field support with timezone features for Apps Forms (#9521) 2026-07-16 08:09:47 -06:00
error_handling.test.ts On iOS, resuming after the 5-minute window showed no biometric prompt — (#10102) 2026-09-02 15:03:13 +08:00
error_handling.ts Migrate from RNN to Expo router (#9402) 2026-05-13 17:44:55 +08:00
errors.test.ts [MM-62777] Fix errors being nested. Make MFA code more resilient to this situation (#8531) 2025-01-31 08:31:15 +02:00
errors.ts Migrate from RNN to Expo router (#9402) 2026-05-13 17:44:55 +08:00
files.test.ts Secure Files and preview PDF inline (#8844) 2025-06-19 15:30:56 +08:00
files.tsx feat(iOS): Add Microsoft Intune MAM integration with multi-server support (#9312) 2025-12-10 13:07:28 +02:00
grapheme.test.ts New keyboard library Setup (#9278) 2026-01-13 22:38:35 +05:30
grapheme.ts New keyboard library Setup (#9278) 2026-01-13 22:38:35 +05:30
groups.test.ts added utils unit tests (#8040) 2024-07-05 07:17:09 +08:00
groups.ts [Gekidou] Groups + group-memberships deferred fetch (#6370) 2022-07-07 12:20:06 +02:00
headers.test.ts Fix case-insensitive pre-auth header check in doPing (#9577) 2026-03-17 12:07:07 +01:00
headers.ts Fix case-insensitive pre-auth header check in doPing (#9577) 2026-03-17 12:07:07 +01:00
helpers.test.ts Classification Markings: Cached request timer and PSv2 Implementation (#9926) 2026-08-13 15:24:07 +03:00
helpers.ts Classification Markings: Cached request timer and PSv2 Implementation (#9926) 2026-08-13 15:24:07 +03:00
integrations.test.ts Add date/datetime field support with timezone features for Apps Forms (#9521) 2026-07-16 08:09:47 -06:00
integrations.ts Add date/datetime field support with timezone features for Apps Forms (#9521) 2026-07-16 08:09:47 -06:00
interactive_dialog_adapter.test.ts Add DialogRouter for Interactive Dialog to Apps Form migration (#9114) 2026-01-26 08:57:56 -07:00
interactive_dialog_adapter.ts Migrate from RNN to Expo router (#9402) 2026-05-13 17:44:55 +08:00
intune_errors.test.ts add support on iOS for Intune Conditional Access (#9660) 2026-04-09 17:46:52 +03:00
intune_errors.ts add support on iOS for Intune Conditional Access (#9660) 2026-04-09 17:46:52 +03:00
key_mirror.test.ts added utils unit tests (#8040) 2024-07-05 07:17:09 +08:00
key_mirror.ts MM-35115 [Gekidou] Login flow - Email and Password (#5402) 2021-06-18 00:57:40 -04:00
keyboard.test.ts Mm 67525 bump min version (#9640) 2026-09-16 10:53:06 +00:00
keyboard.ts Mm 67525 bump min version (#9640) 2026-09-16 10:53:06 +00:00
log.test.ts Add Report a Problem functionality (#8605) 2025-04-24 11:12:55 +02:00
log.ts Update dependencies (#8721) 2025-04-07 09:30:06 +08:00
mattermost_managed.test.ts added utils unit tests (#8040) 2024-07-05 07:17:09 +08:00
mattermost_managed.ts Upgrade RN as well as update or replace other dependencies (#8011) 2024-06-19 09:33:45 +08:00
message_attachment.test.ts Make attachments and app bindings more robust yet secure (#8570) 2025-03-14 12:02:32 +01:00
message_attachment.ts Make attachments and app bindings more robust yet secure (#8570) 2025-03-14 12:02:32 +01:00
mix.test.ts added utils unit tests (#8040) 2024-07-05 07:17:09 +08:00
mix.ts Remove watermelondb limitation on updating an already updated model (#7067) 2023-02-03 17:11:57 +02:00
opengraph.test.ts fix: Product fixes to run e2e tests (#10081) 2026-08-26 16:12:37 +05:30
opengraph.ts fix: Product fixes to run e2e tests (#10081) 2026-08-26 16:12:37 +05:30
permalink_sync.test.ts Ability to show attachment if the permalink post contains attachments. (#9101) 2025-09-12 13:44:54 +05:30
permalink_sync.ts Ability to show attachment if the permalink post contains attachments. (#9101) 2025-09-12 13:44:54 +05:30
phone_number.test.ts MM-70688 Autolink phone numbers in posts as tel: links (#10143) 2026-09-14 14:32:17 -04:00
phone_number.ts MM-70688 Autolink phone numbers in posts as tel: links (#10143) 2026-09-14 14:32:17 -04:00
push_proxy.test.ts added utils unit tests (#8040) 2024-07-05 07:17:09 +08:00
push_proxy.ts capitalize back the alert text 2023-10-18 21:06:12 +02:00
remote_cluster_connection.test.ts [MM-67923] Add channel settings for shared channels (#9591) 2026-04-14 11:43:44 +02:00
remote_cluster_connection.ts [MM-67923] Add channel settings for shared channels (#9591) 2026-04-14 11:43:44 +02:00
reviews.test.ts Migrate from RNN to Expo router (#9402) 2026-05-13 17:44:55 +08:00
reviews.ts Migrate from RNN to Expo router (#9402) 2026-05-13 17:44:55 +08:00
saml_challenge.ts Mobile-side for MM-65084 (#9115) 2025-09-29 14:29:37 -07:00
sentry.test.ts Fix Regressions (#9808) 2026-06-04 06:54:40 +08:00
sentry.ts Fix Regressions (#9808) 2026-06-04 06:54:40 +08:00
share_logs.test.ts Report a problem not redirect to default email application (#9703) 2026-05-14 09:10:39 -04:00
share_logs.ts Report a problem not redirect to default email application (#9703) 2026-05-14 09:10:39 -04:00
strings.test.ts added utils unit tests (#8040) 2024-07-05 07:17:09 +08:00
strings.ts added utils unit tests (#8040) 2024-07-05 07:17:09 +08:00
subscription.test.ts Migrate from RNN to Expo router (#9402) 2026-05-13 17:44:55 +08:00
subscription.ts Migrate from RNN to Expo router (#9402) 2026-05-13 17:44:55 +08:00
team_menu.test.ts Migrate from RNN to Expo router (#9402) 2026-05-13 17:44:55 +08:00
team_menu.ts Migrate from RNN to Expo router (#9402) 2026-05-13 17:44:55 +08:00
time.test.ts Feature schedule posts (#8509) 2025-04-14 22:08:59 +05:30
time.ts Feature schedule posts (#8509) 2025-04-14 22:08:59 +05:30
timezone.test.ts added utils unit tests (#8040) 2024-07-05 07:17:09 +08:00
timezone.ts remove usages of isTimeZoneEnabled (#7769) 2024-01-30 13:22:55 +01:00
types.ts Add model mocks to TestHelper (#8715) 2025-03-28 09:40:08 +01:00
typography.test.ts added utils unit tests (#8040) 2024-07-05 07:17:09 +08:00
typography.ts added utils unit tests (#8040) 2024-07-05 07:17:09 +08:00