Feature: Implement and integrate transform preview change handling

This commit is contained in:
2026-04-27 00:32:05 +02:00
parent 7f3ad26c46
commit 33dc7e8749
13 changed files with 39 additions and 3 deletions

View File

@@ -4601,7 +4601,13 @@ export function App({ store, initialStatusMessage }: AppProps) {
if (event.key === "Enter") {
event.preventDefault();
commitTransformSession(transformSession);
const latestTransformSession =
latestActiveTransformSessionRef.current;
commitTransformSession(
latestTransformSession?.id === transformSession.id
? latestTransformSession
: transformSession
);
return;
}
@@ -14239,8 +14245,16 @@ export function App({ store, initialStatusMessage }: AppProps) {
onWhiteboxSnapStepDraftChange={setWhiteboxSnapStepDraft}
onWhiteboxSnapStepBlur={handleWhiteboxSnapStepBlur}
onTransformSessionChange={(nextTransformSession) => {
latestActiveTransformSessionRef.current =
nextTransformSession.kind === "active"
? nextTransformSession
: null;
store.setTransformSession(nextTransformSession);
}}
onTransformPreviewChange={(nextTransformSession) => {
latestActiveTransformSessionRef.current =
nextTransformSession;
}}
onTransformCommit={commitTransformSession}
onTransformCancel={() => cancelTransformSession()}
onSelectionChange={(selection) =>

View File

@@ -73,7 +73,7 @@ interface ViewportCanvasProps {
onCameraStateChange(cameraState: ViewportPanelCameraState): void;
onToolPreviewChange(toolPreview: ViewportToolPreview): void;
onTransformSessionChange(transformSession: TransformSessionState): void;
onTransformPreviewChange(transformSession: ActiveTransformSession): void;
onTransformPreviewChange?(transformSession: ActiveTransformSession): void;
onTransformCommit(transformSession: ActiveTransformSession): void;
onTransformCancel(): void;
}
@@ -110,7 +110,7 @@ export function ViewportCanvas({
onCameraStateChange,
onToolPreviewChange,
onTransformSessionChange,
onTransformPreviewChange,
onTransformPreviewChange = () => undefined,
onTransformCommit,
onTransformCancel
}: ViewportCanvasProps) {