From 5d433308743faaad70f3a49a5dcce38d72f654fb Mon Sep 17 00:00:00 2001 From: cynfria Date: Wed, 26 Aug 2026 17:57:36 -0700 Subject: [PATCH] fix(desktop): reframe selected project task Signed-off-by: cynfria --- .../app/buzz-project-prototype.tsx | 20 ++++++++++++++++--- prototypes/project-cube-orbit/app/globals.css | 3 ++- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/prototypes/project-cube-orbit/app/buzz-project-prototype.tsx b/prototypes/project-cube-orbit/app/buzz-project-prototype.tsx index e2ceb5c05f..ca2c3187b3 100644 --- a/prototypes/project-cube-orbit/app/buzz-project-prototype.tsx +++ b/prototypes/project-cube-orbit/app/buzz-project-prototype.tsx @@ -964,6 +964,20 @@ export function BuzzProjectPrototype() { setActiveTab(tab); }; + const selectTask = (selection: SelectedTask) => { + const pan = canvasPanRef.current; + pan.pointerId = -1; + pan.originX = 0; + pan.originY = 0; + pan.x = 0; + pan.y = 0; + projectWorldRef.current?.style.setProperty( + "transform", + "translate3d(0px, 0px, 0)", + ); + setSelectedTask(selection); + }; + const beginCanvasPan = (event: ReactPointerEvent) => { if (selectedTask) return; const target = event.target as Element; @@ -1026,9 +1040,9 @@ export function BuzzProjectPrototype() { className="project-world" style={{ transform: `translate3d(${canvasPanRef.current.x}px, ${canvasPanRef.current.y}px, 0)` }} > - - - + + + {selectedTask ? setSelectedTask(null)} /> : null} diff --git a/prototypes/project-cube-orbit/app/globals.css b/prototypes/project-cube-orbit/app/globals.css index f4d591fc79..c6e9284801 100644 --- a/prototypes/project-cube-orbit/app/globals.css +++ b/prototypes/project-cube-orbit/app/globals.css @@ -37,7 +37,8 @@ body { background: #e6f2f5; color: var(--ink); font-family: Inter, ui-sans-serif .project-stage { position: relative; min-height: 100svh; overflow: hidden; touch-action: none; user-select: none; cursor: grab; } .project-stage.is-panning { cursor: grabbing; } -.project-world { position: absolute; inset: 0; transform: translate3d(0,0,0); will-change: transform; } +.project-world { position: absolute; inset: 0; transform: translate3d(0,0,0); transition: transform 520ms cubic-bezier(.22,1,.36,1); will-change: transform; } +.project-stage.is-panning .project-world { transition: none; } .orbit-system { --orbit-scale: 1; --focus-x: 0px;