From b80e95b2aaeef7a274f92293e00ccd52892c10be Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Wed, 30 Jul 2025 18:18:58 +0200 Subject: [PATCH] Change new replies to be loaded automatically if thread previously empty (#35603) --- .../status/components/refresh_controller.tsx | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/app/javascript/mastodon/features/status/components/refresh_controller.tsx b/app/javascript/mastodon/features/status/components/refresh_controller.tsx index 2765d5d9f..9788b2849 100644 --- a/app/javascript/mastodon/features/status/components/refresh_controller.tsx +++ b/app/javascript/mastodon/features/status/components/refresh_controller.tsx @@ -24,6 +24,11 @@ export const RefreshController: React.FC<{ const refresh = useAppSelector( (state) => state.contexts.refreshing[statusId], ); + const autoRefresh = useAppSelector( + (state) => + !state.contexts.replies[statusId] || + state.contexts.replies[statusId].length === 0, + ); const dispatch = useAppDispatch(); const intl = useIntl(); const [ready, setReady] = useState(false); @@ -39,6 +44,11 @@ export const RefreshController: React.FC<{ dispatch(completeContextRefresh({ statusId })); if (result.async_refresh.result_count > 0) { + if (autoRefresh) { + void dispatch(fetchContext({ statusId })); + return ''; + } + setReady(true); } } else { @@ -57,7 +67,7 @@ export const RefreshController: React.FC<{ return () => { clearTimeout(timeoutId); }; - }, [dispatch, setReady, statusId, refresh]); + }, [dispatch, setReady, statusId, refresh, autoRefresh]); const handleClick = useCallback(() => { setLoading(true);