mattermost-mobile-upstream/app/components
Mattermost Build 3dda07ff03
Fix three causes of channels rendering blank (#9992) (#10000)
* Fix three causes of channels rendering blank

Recover a channel whose newest interval lost all its posts. A since-fetch
is the only path that receives deletions, and handlePosts destroys those
posts locally — but nothing shrinks the PostsInChannel interval they came
from. An empty interval still wins postsInChannel[0] and renders blank,
and no later since-fetch can repopulate it: once lastFetchedAt is past
the deletion the server correctly returns nothing. fetchPostsForChannel
now detects that state, drops the interval and pulls a page instead,
which merges into a surviving interval or records a real gap that closes
on scroll. Scoped to fetchOnly=false; the fetchOnly callers can leave the
same state behind but are repaired when the user opens the channel.

Thread payloads no longer advance MyChannel.lastFetchedAt. A CRT
thread-reply push carries only that thread's posts, so it is not evidence
the channel was fetched up to the reply's timestamp — advancing the
watermark let getPostsSince skip channel posts that were never fetched.
handlePosts already skips PostsInChannel for RECEIVED_IN_THREAD, and the
native handlers already guard this via receivingThreads.

Pull-to-refresh self-heals as a manual escape hatch for blank states the
automatic recovery cannot see — an interval holding only posts that get
filtered out (replies with CRT on, join/leave messages). Blankness is
measured from orderedPosts rather than posts so it accounts for those
filters.

Also fixes deletePostsForChannel, which returned early when a channel had
no posts left — precisely the post-less-interval case — and never
destroyed intervals because it called .length on a Query instead of
fetching it.

* test feedback

* fix tests

* more test fixes

(cherry picked from commit d1e1f936b6)

Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
2026-08-05 08:10:11 +03:00
..
animated_number Migrate from RNN to Expo router (#9402) 2026-05-13 17:44:55 +08:00
announcement_banner Migrate from RNN to Expo router (#9402) 2026-05-13 17:44:55 +08:00
app_version Enable exhaustive deps in the repo (#9508) 2026-02-18 11:56:16 +01:00
autocomplete Revert "e2e(detox): Rainforest to Detox migration (#9790)" (#9834) 2026-06-15 17:57:01 +02:00
autocomplete_selector Mattermost Blocks (#9764) 2026-06-29 18:42:16 +02:00
badge feat:proper badge theme use for server list (#8313) 2024-11-05 07:11:17 -07:00
block_renderer [MM-70023] Consider attachment fields with no title for block translation (#9981) (#9985) 2026-07-30 19:04:25 +03:00
burn_on_read_label Revert "e2e(detox): Rainforest to Detox migration (#9790)" (#9834) 2026-06-15 17:57:01 +02:00
button Mattermost Blocks (#9764) 2026-06-29 18:42:16 +02:00
channel_actions Migrate from RNN to Expo router (#9402) 2026-05-13 17:44:55 +08:00
channel_banner MM-68208 Implementing global and channel-level banners on mobile (#9752) 2026-07-08 12:47:01 +03:00
channel_bookmarks ci(e2e): port E2E CI stack to release-2.43 to unblock merges (#10004) 2026-08-04 16:50:34 +05:30
channel_icon Enable exhaustive deps in the repo (#9508) 2026-02-18 11:56:16 +01:00
channel_item Revert "e2e(detox): Rainforest to Detox migration (#9790)" (#9834) 2026-06-15 17:57:01 +02:00
channel_list_row Mattermost Blocks (#9764) 2026-06-29 18:42:16 +02:00
chips Migrate from RNN to Expo router (#9402) 2026-05-13 17:44:55 +08:00
common_post_options ci(e2e): port E2E CI stack to release-2.43 to unblock merges (#10004) 2026-08-04 16:50:34 +05:30
compass_icon Migrate from RNN to Expo router (#9402) 2026-05-13 17:44:55 +08:00
connection_banner Migrate from RNN to Expo router (#9402) 2026-05-13 17:44:55 +08:00
copy_text_option Migrate from RNN to Expo router (#9402) 2026-05-13 17:44:55 +08:00
custom_status Migrate from RNN to Expo router (#9402) 2026-05-13 17:44:55 +08:00
date_time_selector Add date/datetime field support with timezone features for Apps Forms (#9521) (#9933) 2026-07-17 08:04:27 +03:00
document use alertOnlyPDFSupported for document files (#9023) 2025-07-27 18:05:49 +08:00
draft_scheduled_post Migrate from RNN to Expo router (#9402) 2026-05-13 17:44:55 +08:00
draft_scheduled_post_header feat(iOS): Add Microsoft Intune MAM integration with multi-server support (#9312) 2025-12-10 13:07:28 +02:00
drafts_buttton Migrate from RNN to Expo router (#9402) 2026-05-13 17:44:55 +08:00
edited_indicator Fix the Edited post incorrect line spacing on Android (#9170) 2025-10-01 21:26:57 +08:00
emoji feat(iOS): Add Microsoft Intune MAM integration with multi-server support (#9312) 2025-12-10 13:07:28 +02:00
emoji_category_bar Migrate from RNN to Expo router (#9402) 2026-05-13 17:44:55 +08:00
error_text Update dependencies and upgrade to RN 0.76.5 (#8421) 2025-01-16 07:11:32 -07:00
expo_image Migrate from RNN to Expo router (#9402) 2026-05-13 17:44:55 +08:00
external_image Fix link to image proxy and correct padding in image sizing on blocks (#9976) (#9983) 2026-07-30 15:07:57 +03:00
files test(detox): re-submit RF→Detox migration without unintended UI changes (#9847) 2026-06-19 22:44:02 +05:30
files_search Migrate from RNN to Expo router (#9402) 2026-05-13 17:44:55 +08:00
floating_input Revert "e2e(detox): Rainforest to Detox migration (#9790)" (#9834) 2026-06-15 17:57:01 +02:00
formatted_date Migrate from RNN to Expo router (#9402) 2026-05-13 17:44:55 +08:00
formatted_markdown_text Migrate from RNN to Expo router (#9402) 2026-05-13 17:44:55 +08:00
formatted_relative_time Agents "RHS" view (#9318) 2026-03-16 09:48:32 -07:00
formatted_text Standardize tabs across different components (#8691) 2025-05-28 16:23:37 +02:00
formatted_time Feature schedule posts (#8509) 2025-04-14 22:08:59 +05:30
friendly_date Make relatives times coherent with web (#9062) 2025-08-12 14:28:25 +02:00
global_classification_banner MM-68208 Implementing global and channel-level banners on mobile (#9752) 2026-07-08 12:47:01 +03:00
illustrations Update additional images branding (#8672) 2025-06-20 11:41:26 -04:00
jumbo_emoji Typescript support and view component for permalink with user and message (#9052) 2025-09-10 17:12:16 +05:30
loading Unify buttons (#8865) 2025-05-30 15:59:15 +02:00
loading_error Migrate from RNN to Expo router (#9402) 2026-05-13 17:44:55 +08:00
markdown [MM-69457] Stop logging PII in exportable app logs (#9884) 2026-07-02 12:19:04 +02:00
math_view Migrate from RNN to Expo router (#9402) 2026-05-13 17:44:55 +08:00
menu_divider Add Report a Problem functionality (#8605) 2025-04-24 11:12:55 +02:00
navigation_button Migrate from RNN to Expo router (#9402) 2026-05-13 17:44:55 +08:00
navigation_header MM-68208 Implementing global and channel-level banners on mobile (#9752) 2026-07-08 12:47:01 +03:00
navigation_header_title Migrate from RNN to Expo router (#9402) 2026-05-13 17:44:55 +08:00
no_results_with_term Remove tand prevent double tap (#9078) 2025-08-25 12:03:01 +02:00
option_box Migrate from RNN to Expo router (#9402) 2026-05-13 17:44:55 +08:00
option_item Revert "e2e(detox): Rainforest to Detox migration (#9790)" (#9834) 2026-06-15 17:57:01 +02:00
other_mentions_badge Enable exhaustive deps in the repo (#9508) 2026-02-18 11:56:16 +01:00
post_draft fix: hardware Enter key not sending messages in channel on iPad (#9965) (#9998) 2026-08-05 08:09:53 +03:00
post_list Fix three causes of channels rendering blank (#9992) (#10000) 2026-08-05 08:10:11 +03:00
post_priority Standardize tags and chips through the app (#8856) 2025-06-11 10:11:05 +02:00
post_with_channel_info fix: app bugs surfaced by Detox RF migration (#9789) 2026-06-09 13:25:42 +05:30
pressable_opacity test(detox): re-submit RF→Detox migration without unintended UI changes (#9847) 2026-06-19 22:44:02 +05:30
profile_picture Migrate from RNN to Expo router (#9402) 2026-05-13 17:44:55 +08:00
progress_bar Migrate from RNN to Expo router (#9402) 2026-05-13 17:44:55 +08:00
progressive_image feat(iOS): Add Microsoft Intune MAM integration with multi-server support (#9312) 2025-12-10 13:07:28 +02:00
remove_markdown MM-56577 Fixing font display issues on thread items (#9630) 2026-05-28 15:11:52 +03:00
rounded_header_context [Gekidou] Navigation bar refactored (#6319) 2022-06-01 17:07:54 -04:00
scheduled_post_indicator Migrate from RNN to Expo router (#9402) 2026-05-13 17:44:55 +08:00
search Mattermost Blocks (#9764) 2026-06-29 18:42:16 +02:00
section_notice Migrate from RNN to Expo router (#9402) 2026-05-13 17:44:55 +08:00
selected_users Migrate from RNN to Expo router (#9402) 2026-05-13 17:44:55 +08:00
server_icon Migrate from RNN to Expo router (#9402) 2026-05-13 17:44:55 +08:00
server_user_list Mattermost Blocks (#9764) 2026-06-29 18:42:16 +02:00
server_version Enable exhaustive deps in the repo (#9508) 2026-02-18 11:56:16 +01:00
settings Add date/datetime field support with timezone features for Apps Forms (#9521) (#9933) 2026-07-17 08:04:27 +03:00
slide_up_panel_item Migrate from RNN to Expo router (#9402) 2026-05-13 17:44:55 +08:00
status_label Remove tand prevent double tap (#9078) 2025-08-25 12:03:01 +02:00
syntax_highlight Migrate from RNN to Expo router (#9402) 2026-05-13 17:44:55 +08:00
system_avatar [Gekidou] post list (#5893) 2022-01-17 07:06:26 -03:00
system_header feat: Add visible to you text on ephemeral posts (#8245) 2024-10-30 10:01:49 +01:00
tablet_title Migrate from RNN to Expo router (#9402) 2026-05-13 17:44:55 +08:00
tag Revert "e2e(detox): Rainforest to Detox migration (#9790)" (#9834) 2026-06-15 17:57:01 +02:00
team_list Migrate from RNN to Expo router (#9402) 2026-05-13 17:44:55 +08:00
team_sidebar Multiple Fixes (#9767) 2026-05-19 16:35:20 +08:00
threads_button Migrate from RNN to Expo router (#9402) 2026-05-13 17:44:55 +08:00
toast Migrate from RNN to Expo router (#9402) 2026-05-13 17:44:55 +08:00
touchable_emoji New keyboard library Setup (#9278) 2026-01-13 22:38:35 +05:30
touchable_with_feedback Upgrade Dependencies (#7299) 2023-04-21 12:16:54 -04:00
tutorial_highlight Migrate from RNN to Expo router (#9402) 2026-05-13 17:44:55 +08:00
upload_item_shared Migrate from RNN to Expo router (#9402) 2026-05-13 17:44:55 +08:00
user_avatars_stack Migrate from RNN to Expo router (#9402) 2026-05-13 17:44:55 +08:00
user_item ci(e2e): port E2E CI stack to release-2.43 to unblock merges (#10004) 2026-08-04 16:50:34 +05:30
user_list ci(e2e): port E2E CI stack to release-2.43 to unblock merges (#10004) 2026-08-04 16:50:34 +05:30
user_list_row Mattermost Blocks (#9764) 2026-06-29 18:42:16 +02:00
user_status Migrate from RNN to Expo router (#9402) 2026-05-13 17:44:55 +08:00
keyboard_aware_post_draft_container.tsx resumes slide animation after stopping due to modal system dialog showing (#9792) 2026-05-29 06:50:57 +08:00