From 81aaac4779e818629d490d98e01a5a8319bfe4e3 Mon Sep 17 00:00:00 2001 From: diondiondion Date: Fri, 12 Jun 2026 15:44:34 +0200 Subject: [PATCH] [Glitch] Fix crash of standalone wrapstodon and embedded status pages Port a78d1150a9c8f385450bb0cfaa947c164c8c69d6 to glitch-soc Signed-off-by: Claire --- .../glitch/components/navigation_focus_target/index.tsx | 8 +------- app/javascript/flavours/glitch/entrypoints/wrapstodon.tsx | 5 ++++- .../flavours/glitch/features/standalone/status/index.tsx | 5 ++++- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/app/javascript/flavours/glitch/components/navigation_focus_target/index.tsx b/app/javascript/flavours/glitch/components/navigation_focus_target/index.tsx index f4b42926a8..ceb26842db 100644 --- a/app/javascript/flavours/glitch/components/navigation_focus_target/index.tsx +++ b/app/javascript/flavours/glitch/components/navigation_focus_target/index.tsx @@ -102,15 +102,9 @@ export const FocusTargetProvider: React.FC<{ export function useFocusOnNavigation(targetName?: string) { const focusTargetRef = useContext(FocusTargetContext); - if (focusTargetRef === null) { - throw Error( - 'useFocusTargetContext must be used inside of a FocusTargetProvider', - ); - } - return useCallback( (element: HTMLElement | null) => { - const focusTarget = focusTargetRef.current; + const focusTarget = focusTargetRef?.current; // Bail out if focusTarget was set to `false` if (!element || !focusTarget) { diff --git a/app/javascript/flavours/glitch/entrypoints/wrapstodon.tsx b/app/javascript/flavours/glitch/entrypoints/wrapstodon.tsx index 4efcf619ad..7bb1ae9128 100644 --- a/app/javascript/flavours/glitch/entrypoints/wrapstodon.tsx +++ b/app/javascript/flavours/glitch/entrypoints/wrapstodon.tsx @@ -5,6 +5,7 @@ import { Provider as ReduxProvider } from 'react-redux'; import { importFetchedStatuses } from '@/flavours/glitch/actions/importer'; import { hydrateStore } from '@/flavours/glitch/actions/store'; import type { ApiAnnualReportResponse } from '@/flavours/glitch/api/annual_report'; +import { FocusTargetProvider } from '@/flavours/glitch/components/navigation_focus_target'; import { Router } from '@/flavours/glitch/components/router'; import { WrapstodonSharedPage } from '@/flavours/glitch/features/annual_report/shared_page'; import { IntlProvider, loadLocale } from '@/flavours/glitch/locales'; @@ -52,7 +53,9 @@ function loaded() { - + + + , diff --git a/app/javascript/flavours/glitch/features/standalone/status/index.tsx b/app/javascript/flavours/glitch/features/standalone/status/index.tsx index aeddc3ef54..ba0f6de239 100644 --- a/app/javascript/flavours/glitch/features/standalone/status/index.tsx +++ b/app/javascript/flavours/glitch/features/standalone/status/index.tsx @@ -11,6 +11,7 @@ import { toggleStatusSpoilers, } from 'flavours/glitch/actions/statuses'; import { hydrateStore } from 'flavours/glitch/actions/store'; +import { FocusTargetProvider } from 'flavours/glitch/components/navigation_focus_target'; import { Router } from 'flavours/glitch/components/router'; import { DetailedStatus } from 'flavours/glitch/features/status/components/detailed_status'; import { useRenderSignal } from 'flavours/glitch/hooks/useRenderSignal'; @@ -86,7 +87,9 @@ export const Status: React.FC<{ id: string }> = ({ id }) => { - + + +