From 32291ce0807aedc4367de240b7bdbcf9e3edabaf Mon Sep 17 00:00:00 2001 From: Tanish Manku Date: Wed, 29 Apr 2026 14:56:05 -0700 Subject: [PATCH] PageScene: migrate objectPanel signals to PageSceneStore --- .../ControlPanelSceneObject.tsx | 10 +++------ .../app/src/pages/PageScene/engine/editor.ts | 4 ++-- .../app/src/pages/PageScene/engine/helper.ts | 5 ++--- .../PageScene/engine/keybinds_controls.ts | 12 ++++------ .../app/src/pages/PageScene/signals/index.ts | 1 - .../PageScene/signals/objectPanel/index.ts | 1 - .../signals/objectPanel/objectPanel.ts | 22 ------------------- .../PageScene/signals/objectPanel/types.tsx | 14 ------------ 8 files changed, 11 insertions(+), 58 deletions(-) delete mode 100644 frontend/apps/artcraft/app/src/pages/PageScene/signals/objectPanel/index.ts delete mode 100644 frontend/apps/artcraft/app/src/pages/PageScene/signals/objectPanel/objectPanel.ts delete mode 100644 frontend/apps/artcraft/app/src/pages/PageScene/signals/objectPanel/types.tsx diff --git a/frontend/apps/artcraft/app/src/pages/PageScene/comps/ControlPanelSceneObject/ControlPanelSceneObject.tsx b/frontend/apps/artcraft/app/src/pages/PageScene/comps/ControlPanelSceneObject/ControlPanelSceneObject.tsx index d323372a2f..2dab5e711f 100644 --- a/frontend/apps/artcraft/app/src/pages/PageScene/comps/ControlPanelSceneObject/ControlPanelSceneObject.tsx +++ b/frontend/apps/artcraft/app/src/pages/PageScene/comps/ControlPanelSceneObject/ControlPanelSceneObject.tsx @@ -1,5 +1,4 @@ import { ChangeEvent, useContext, useEffect, useId, useState } from "react"; -import { useSignals } from "@preact/signals-react/runtime"; import { Transition } from "@headlessui/react"; import { faChevronDown, @@ -9,7 +8,6 @@ import { } from "@fortawesome/pro-solid-svg-icons"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; -import { objectPanel as objectPanelSignals } from "../../signals"; import { EngineContext } from "~/pages/PageScene/contexts/EngineContext"; import { InputVector } from "@storyteller/ui-input"; import { Button } from "@storyteller/ui-button"; @@ -37,10 +35,10 @@ const defaultAxises: Record = { }; export const ControlPanelSceneObject = () => { - useSignals(); const disableHotkeyInput = usePageSceneStore((s) => s.disableHotkeyInput); const enableHotkeyInput = usePageSceneStore((s) => s.enableHotkeyInput); - const { isShowing, currentObject } = objectPanelSignals; + const isShowing = usePageSceneStore((s) => s.objectPanelShowing); + const currentSceneObject = usePageSceneStore((s) => s.objectPanelCurrent); const editorEngine = useContext(EngineContext); @@ -65,8 +63,6 @@ export const ControlPanelSceneObject = () => { setIsCollapsed(!isCollapsed); }; - const currentSceneObject = currentObject.value; - function localToEngine(xyz: Record) { return { x: parseFloat(xyz.x), @@ -180,7 +176,7 @@ export const ControlPanelSceneObject = () => { return ( 0) { this.removeTransformControls(); - hideObjectPanel(); + usePageSceneStore.getState().hideObjectPanel(); usePageSceneStore.getState().setShowPoseControls(false); } } @@ -609,7 +605,7 @@ export class MouseControls { this.selected = []; this.setSelected(this.selected); this.removeTransformControls(); - hideObjectPanel(); + usePageSceneStore.getState().hideObjectPanel(); usePageSceneStore.getState().setShowPoseControls(false); } diff --git a/frontend/apps/artcraft/app/src/pages/PageScene/signals/index.ts b/frontend/apps/artcraft/app/src/pages/PageScene/signals/index.ts index 937c4d92f7..a09dbb8851 100644 --- a/frontend/apps/artcraft/app/src/pages/PageScene/signals/index.ts +++ b/frontend/apps/artcraft/app/src/pages/PageScene/signals/index.ts @@ -1,4 +1,3 @@ export * from "./demoAssets"; export * from "./engine"; -export * from "./objectPanel"; export * from "./outliner"; diff --git a/frontend/apps/artcraft/app/src/pages/PageScene/signals/objectPanel/index.ts b/frontend/apps/artcraft/app/src/pages/PageScene/signals/objectPanel/index.ts deleted file mode 100644 index 776c6c3148..0000000000 --- a/frontend/apps/artcraft/app/src/pages/PageScene/signals/objectPanel/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./objectPanel"; diff --git a/frontend/apps/artcraft/app/src/pages/PageScene/signals/objectPanel/objectPanel.ts b/frontend/apps/artcraft/app/src/pages/PageScene/signals/objectPanel/objectPanel.ts deleted file mode 100644 index 345df60741..0000000000 --- a/frontend/apps/artcraft/app/src/pages/PageScene/signals/objectPanel/objectPanel.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { signal } from "@preact/signals-core"; -import { SceneObject } from "./types"; - -export const objectPanel = { - isShowing: signal(false), - currentObject: signal(undefined), -}; - -export const showObjectPanel = (showObject?: SceneObject) => { - if (showObject) { - objectPanel.currentObject.value = showObject; - } - objectPanel.isShowing.value = true; -}; - -export const hideObjectPanel = () => { - objectPanel.isShowing.value = false; -}; - -export const updateObjectPanel = (updateObject: SceneObject) => { - objectPanel.currentObject.value = updateObject; -}; diff --git a/frontend/apps/artcraft/app/src/pages/PageScene/signals/objectPanel/types.tsx b/frontend/apps/artcraft/app/src/pages/PageScene/signals/objectPanel/types.tsx deleted file mode 100644 index 3786527b5c..0000000000 --- a/frontend/apps/artcraft/app/src/pages/PageScene/signals/objectPanel/types.tsx +++ /dev/null @@ -1,14 +0,0 @@ -import { Simple3DVector } from "~/pages/PageScene/datastructures/common"; -import { ClipGroup } from "~/enums"; - -export type ControlPanel = { - isShowing: boolean; - currentSceneObject: SceneObject; -}; -export type SceneObject = { - group: ClipGroup; // TODO: add meta data to determine what it is a camera or a object or a character into prefab clips - object_uuid: string; - object_name: string; - version: string; - objectVectors: Simple3DVector; -};