diff --git a/src/pages/tldraw/singlePlayerPage.tsx b/src/pages/tldraw/singlePlayerPage.tsx index 688963b..647763d 100644 --- a/src/pages/tldraw/singlePlayerPage.tsx +++ b/src/pages/tldraw/singlePlayerPage.tsx @@ -98,9 +98,6 @@ export default function SinglePlayerPage() { shapeUtils: allShapeUtils, bindingUtils: allBindingUtils }); - // Pre-initialize tldraw's required records (TLINSTANCE, page, cameras) - // so computed signals that read currentPageId don't crash before Editor construction completes - (newStore as unknown as { ensureStoreIsUsable(): void }).ensureStoreIsUsable(); const snapSvc = new NavigationSnapshotService(newStore, editorRef.current || undefined); if (accessToken) snapSvc.setAccessToken(accessToken); @@ -127,6 +124,10 @@ export default function SinglePlayerPage() { return; } + // After snapshot loading (which may overwrite or clear store records), + // ensure TLINSTANCE + page + cameras exist so tldraw never crashes on empty/corrupt store + (newStore as unknown as { ensureStoreIsUsable(): void }).ensureStoreIsUsable(); + let debounce: ReturnType | null = null; newStore.listen(() => { if (!snapshotServiceRef.current?.getCurrentNodePath()) return;