From 11a0ac82b63a2e8ff9ae40db0189cdffd3903ba7 Mon Sep 17 00:00:00 2001 From: Tanish Manku Date: Tue, 28 Apr 2026 23:11:52 -0700 Subject: [PATCH] PageEnigma refactor Phase 5b: migrate error, myMovies, editorOverlays signal slices Three more signal files retired in favour of the Zustand store. error.ts (deleted): - ErrorDialog (in ~/components/signaled): reads showErrorDialog / errorDialogTitle / errorDialogMessage from the store, calls setShowErrorDialog - SceneTitleInput (in TopBar): handleShowErrorDialog uses the store's setErrorDialog action myMovies.ts (deleted): - MyMoviesButton (in TopBar): writes via setGenerateMovieId / setViewMyMovies - GenerateModals: useEffect-on-store replaces useSignalEffect; reads generateMovieId from store - MyMovies and Sharing: read viewMyMovies from store, close via setViewMyMovies - Sharing also reads generateMovieId from store editorOverlays.ts (deleted): - PageEditor's LoadingDots: reads editorLoader from store - SceneContainer: reads editorLetterBox from store and passes through to Letterbox - PreviewEngineCamera: reads editorLetterBox + toggleEditorLetterBox from store - save_manager: showEditorLoader/hideEditorLoader become thin wrappers over the store actions, keeping the same call sites signals/index.ts no longer re-exports any of the three deleted files. --- .../src/components/signaled/ErrorDialog.tsx | 28 +++++++++-------- .../signaled/TopBar/MyMoviesButton.tsx | 7 +++-- .../signaled/TopBar/SceneTitleInput.tsx | 10 ++----- .../pages/PageEnigma/Editor/save_manager.ts | 8 +++-- .../app/src/pages/PageEnigma/PageEditor.tsx | 6 ++-- .../comps/GenerateModals/GenerateModals.tsx | 23 +++++++------- .../comps/GenerateModals/MyMovies.tsx | 8 +++-- .../comps/GenerateModals/Sharing.tsx | 20 ++++++++----- .../PreviewEngineCamera.tsx | 19 ++++++------ .../comps/SceneContainer/SceneContainer.tsx | 23 +++++++------- .../PageEnigma/signals/editorOverlays.ts | 30 ------------------- .../app/src/pages/PageEnigma/signals/error.ts | 13 -------- .../app/src/pages/PageEnigma/signals/index.ts | 3 -- .../src/pages/PageEnigma/signals/myMovies.ts | 4 --- 14 files changed, 81 insertions(+), 121 deletions(-) delete mode 100644 frontend/apps/artcraft/app/src/pages/PageEnigma/signals/editorOverlays.ts delete mode 100644 frontend/apps/artcraft/app/src/pages/PageEnigma/signals/error.ts delete mode 100644 frontend/apps/artcraft/app/src/pages/PageEnigma/signals/myMovies.ts diff --git a/frontend/apps/artcraft/app/src/components/signaled/ErrorDialog.tsx b/frontend/apps/artcraft/app/src/components/signaled/ErrorDialog.tsx index 97859e5590..ac546b4a5b 100644 --- a/frontend/apps/artcraft/app/src/components/signaled/ErrorDialog.tsx +++ b/frontend/apps/artcraft/app/src/components/signaled/ErrorDialog.tsx @@ -1,32 +1,36 @@ -import { useSignals } from "@preact/signals-react/runtime"; import { faTriangleExclamation } from "@fortawesome/pro-solid-svg-icons"; +import { useShallow } from "zustand/shallow"; import { Modal } from "@storyteller/ui-modal"; import { Button } from "@storyteller/ui-button"; -import { - showErrorDialog, - errorDialogMessage, - errorDialogTitle, -} from "~/pages/PageEnigma/signals"; +import { usePageEnigmaStore } from "~/pages/PageEnigma/PageEnigmaStore"; export function ErrorDialog() { - useSignals(); + const { showErrorDialog, errorDialogTitle, errorDialogMessage, setShowErrorDialog } = + usePageEnigmaStore( + useShallow((s) => ({ + showErrorDialog: s.showErrorDialog, + errorDialogTitle: s.errorDialogTitle, + errorDialogMessage: s.errorDialogMessage, + setShowErrorDialog: s.setShowErrorDialog, + })), + ); return ( (showErrorDialog.value = false)} + isOpen={showErrorDialog} + onClose={() => setShowErrorDialog(false)} showClose={false} >
- {errorDialogMessage.value} + {errorDialogMessage}