From a61d5f61bb7ff36d35b6ab9b70cc97d7a07ed69d Mon Sep 17 00:00:00 2001 From: yoma Date: Wed, 8 Jul 2026 10:15:26 +0800 Subject: [PATCH] Prefer history restore from mobile editor --- .../MobileStandaloneTiptapEditor.tsx | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/apps/web/src/components/MobileStandaloneTiptapEditor.tsx b/apps/web/src/components/MobileStandaloneTiptapEditor.tsx index 19751a17..98eca924 100644 --- a/apps/web/src/components/MobileStandaloneTiptapEditor.tsx +++ b/apps/web/src/components/MobileStandaloneTiptapEditor.tsx @@ -289,7 +289,24 @@ export const MobileStandaloneTiptapEditor = ({ return; } - window.location.replace(returnTo); + const referrerUrl = document.referrer ? new URL(document.referrer) : null; + const canRestorePreviousPage = Boolean(referrerUrl && referrerUrl.origin === window.location.origin && window.history.length > 1); + + if (!canRestorePreviousPage) { + window.location.replace(returnTo); + return; + } + + const fallbackTimer = window.setTimeout(() => { + if (document.visibilityState !== "hidden") { + window.location.replace(returnTo); + } + }, 900); + + window.addEventListener("pagehide", () => window.clearTimeout(fallbackTimer), { once: true }); + + const currentState = window.history.state as { edgeeverMobileEditorBackGuard?: boolean } | null; + window.history.go(currentState?.edgeeverMobileEditorBackGuard ? -2 : -1); }, [onLeave, returnTo]); const leavePage = useCallback(async () => {