mirror of
https://github.com/storytold/artcraft.git
synced 2026-11-07 02:21:23 +00:00
- Add `nativeWidth`/`nativeHeight` to `Model3DParams` so the 3D overlay always renders at the model's original undistorted dimensions. When a node is stretched via the Konva transformer, the overlay CSS-scales the native framebuffer to fill the stretched frame, giving a live stretch preview. The committed PNG is at native size; Konva applies the visual stretch, preserving it across re-edits. - Fix `renderer.setSize(..., false)` so Three.js does not overwrite the canvas inline CSS, allowing Tailwind `h-full w-full` to control display size and produce the stretch effect. - Extract "Edit 3D" button into an isolated `memo`-wrapped `Edit3DButton` component that owns its own `forceUpdate` state and Konva event listeners (stage pan/zoom + transformer drag). Konva events now only re-render the small button element, not the entire PageDraw tree. - Button position reads directly from the live Konva node via `stage.findOne()` so it tracks transformer handle movement in real-time, before `onTransformEnd` bakes the values back into the store.