mattermost-mobile-upstream/app/utils
yasserfaraazkhan 27b9f80e5b fix(datetime): keep the scheduled label when the engine rejects timeZone
MM-T5720 fails on iOS only. The failure screenshot (run 31977498176, ios shard
9272797291) shows the Scheduled tab listing the post with its channel row and
post_header.date_time, but no "Send on ..." row at all — so
scheduled_post_header.scheduled_at never rendered.

Chain: getReadableTimestamp returns '' when the engine cannot format, and
DraftAndScheduledPostHeader drops the entire scheduled row on an empty string.
Hermes (iOS) returns the literal "Invalid Date" for an option it cannot
honour, timeZone being the usual one, while Android's engine accepts the same
input — which is exactly the platform split we see.

Losing the label is worse than showing the time in the device zone, so retry
without timeZone before giving up. A NaN timestamp still yields '' — that is
genuinely no data, and its existing test still passes.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-17 13:41:37 +05:30
..
alerts Migrate from RNN to Expo router (#9402) 2026-05-13 17:44:55 +08:00
channel Migrate from RNN to Expo router (#9402) 2026-05-13 17:44:55 +08:00
deep_link Migrate from RNN to Expo router (#9402) 2026-05-13 17:44:55 +08: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 Migrate from RNN to Expo router (#9402) 2026-05-13 17:44:55 +08: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
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 Mattermost Blocks (#9764) 2026-06-29 18:42:16 +02:00
user test(e2e): WIP remaining unverified unskips and fixes (failing/not-run) 2026-08-14 22:43:40 +05:30
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
classification.test.ts MM-68208 Implementing global and channel-level banners on mobile (#9752) 2026-07-08 12:47:01 +03:00
classification.ts MM-68208 Implementing global and channel-level banners on mobile (#9752) 2026-07-08 12:47:01 +03: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 fix(datetime): keep the scheduled label when the engine rejects timeZone 2026-08-17 13:41:37 +05:30
datetime.ts fix(datetime): keep the scheduled label when the engine rejects timeZone 2026-08-17 13:41:37 +05:30
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 Migrate from RNN to Expo router (#9402) 2026-05-13 17:44:55 +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 test: restore live isEdgeToEdge mock and subscribe before tutorial write 2026-08-14 00:56:07 +05:30
keyboard.ts Address review comments and fix remaining iOS E2E hangs 2026-08-14 21:47:16 +05:30
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(e2e): stabilize iOS bookmark, saved-search, pin, and Maestro launch flakes 2026-08-13 20:37:19 +05:30
opengraph.ts fix(e2e): stabilize iOS bookmark, saved-search, pin, and Maestro launch flakes 2026-08-13 20:37:19 +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
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
security.test.ts Mattermost Blocks (#9764) 2026-06-29 18:42:16 +02:00
security.ts Mattermost Blocks (#9764) 2026-06-29 18:42:16 +02: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