From 01e0e27037e5b15fc47db321a41c329e72c7934a Mon Sep 17 00:00:00 2001 From: Tanish Manku Date: Wed, 29 Apr 2026 11:33:30 -0700 Subject: [PATCH] PageScene: route PoseModeSelector through getActiveEditor() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Enter Pose Mode button reached through a window.__mouseControls global handle that MouseControls' constructor set up. With getActiveEditor() already exposing the live editor instance for non-React callers (used in the camera-view toggle, the keymap), the global is unnecessary. Drop the (window as any).__mouseControls = this assignment in MouseControls and the matching Window augmentation in PoseModeSelector. Replace the click handler's reach with getActiveEditor()?.mouse_controls?.toggleFKMode() — same shape the keymap entry already uses. --- .../src/pages/PageScene/comps/PoseModeSelector.tsx | 11 ++--------- .../src/pages/PageScene/engine/keybinds_controls.ts | 4 ---- 2 files changed, 2 insertions(+), 13 deletions(-) diff --git a/frontend/apps/artcraft/app/src/pages/PageScene/comps/PoseModeSelector.tsx b/frontend/apps/artcraft/app/src/pages/PageScene/comps/PoseModeSelector.tsx index 65eae91ab0..e8fab7f172 100644 --- a/frontend/apps/artcraft/app/src/pages/PageScene/comps/PoseModeSelector.tsx +++ b/frontend/apps/artcraft/app/src/pages/PageScene/comps/PoseModeSelector.tsx @@ -4,14 +4,7 @@ import { Tooltip } from "@storyteller/ui-tooltip"; import { Button } from "@storyteller/ui-button"; import { faCheck, faPersonRunning } from "@fortawesome/pro-solid-svg-icons"; import { usePageSceneStore } from "../PageSceneStore"; - -declare global { - interface Window { - __mouseControls?: { - toggleFKMode: () => void; - }; - } -} +import { getActiveEditor } from "../contexts/EngineContext/EngineContext"; interface PoseModeSelectorProps {} @@ -26,7 +19,7 @@ export const PoseModeSelector: React.FC = () => { const handleModeChange = () => { setPoseMode(poseMode === "select" ? "pose" : "select"); - window.__mouseControls?.toggleFKMode(); + getActiveEditor()?.mouse_controls?.toggleFKMode(); }; if (!showPoseControls) { diff --git a/frontend/apps/artcraft/app/src/pages/PageScene/engine/keybinds_controls.ts b/frontend/apps/artcraft/app/src/pages/PageScene/engine/keybinds_controls.ts index 40f27afebc..2d2e4dca60 100644 --- a/frontend/apps/artcraft/app/src/pages/PageScene/engine/keybinds_controls.ts +++ b/frontend/apps/artcraft/app/src/pages/PageScene/engine/keybinds_controls.ts @@ -152,10 +152,6 @@ export class MouseControls { scene: this.scene, onDragChange: this.onFKControlsDragging.bind(this), }); - - // Expose handlePoseModeChange to window - // eslint-disable-next-line @typescript-eslint/no-explicit-any - (window as any).__mouseControls = this; } onFKControlsDragging(dragging: boolean) {