Feature: Implement and integrate transform preview change handling
This commit is contained in:
@@ -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) =>
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -22,6 +22,7 @@ const { MockViewportHost, viewportHostInstances } = vi.hoisted(() => {
|
||||
setCreationPreviewChangeHandler: ReturnType<typeof vi.fn>;
|
||||
setCreationCommitHandler: ReturnType<typeof vi.fn>;
|
||||
setTransformSessionChangeHandler: ReturnType<typeof vi.fn>;
|
||||
setTransformPreviewChangeHandler: ReturnType<typeof vi.fn>;
|
||||
setTransformCancelHandler: ReturnType<typeof vi.fn>;
|
||||
setWhiteboxHoverLabelChangeHandler: ReturnType<typeof vi.fn>;
|
||||
setWhiteboxSelectionMode: ReturnType<typeof vi.fn>;
|
||||
@@ -51,6 +52,7 @@ const { MockViewportHost, viewportHostInstances } = vi.hoisted(() => {
|
||||
setCreationPreviewChangeHandler = vi.fn();
|
||||
setCreationCommitHandler = vi.fn();
|
||||
setTransformSessionChangeHandler = vi.fn();
|
||||
setTransformPreviewChangeHandler = vi.fn();
|
||||
setTransformCommitHandler = vi.fn();
|
||||
setTransformCancelHandler = vi.fn();
|
||||
setWhiteboxHoverLabelChangeHandler = vi.fn();
|
||||
|
||||
@@ -31,6 +31,7 @@ const { MockViewportHost, viewportHostInstances } = vi.hoisted(() => {
|
||||
setCreationPreviewChangeHandler: ReturnType<typeof vi.fn>;
|
||||
setCreationCommitHandler: ReturnType<typeof vi.fn>;
|
||||
setTransformSessionChangeHandler: ReturnType<typeof vi.fn>;
|
||||
setTransformPreviewChangeHandler: ReturnType<typeof vi.fn>;
|
||||
setTransformCancelHandler: ReturnType<typeof vi.fn>;
|
||||
setWhiteboxHoverLabelChangeHandler: ReturnType<typeof vi.fn>;
|
||||
setWhiteboxSelectionMode: ReturnType<typeof vi.fn>;
|
||||
@@ -60,6 +61,7 @@ const { MockViewportHost, viewportHostInstances } = vi.hoisted(() => {
|
||||
setCreationPreviewChangeHandler = vi.fn();
|
||||
setCreationCommitHandler = vi.fn();
|
||||
setTransformSessionChangeHandler = vi.fn();
|
||||
setTransformPreviewChangeHandler = vi.fn();
|
||||
setTransformCommitHandler = vi.fn();
|
||||
setTransformCancelHandler = vi.fn();
|
||||
setWhiteboxHoverLabelChangeHandler = vi.fn();
|
||||
|
||||
@@ -22,6 +22,7 @@ const { MockViewportHost, viewportHostInstances } = vi.hoisted(() => {
|
||||
setCreationPreviewChangeHandler: ReturnType<typeof vi.fn>;
|
||||
setCreationCommitHandler: ReturnType<typeof vi.fn>;
|
||||
setTransformSessionChangeHandler: ReturnType<typeof vi.fn>;
|
||||
setTransformPreviewChangeHandler: ReturnType<typeof vi.fn>;
|
||||
setTransformCommitHandler: ReturnType<typeof vi.fn>;
|
||||
setTransformCancelHandler: ReturnType<typeof vi.fn>;
|
||||
setWhiteboxHoverLabelChangeHandler: ReturnType<typeof vi.fn>;
|
||||
@@ -52,6 +53,7 @@ const { MockViewportHost, viewportHostInstances } = vi.hoisted(() => {
|
||||
setCreationPreviewChangeHandler = vi.fn();
|
||||
setCreationCommitHandler = vi.fn();
|
||||
setTransformSessionChangeHandler = vi.fn();
|
||||
setTransformPreviewChangeHandler = vi.fn();
|
||||
setTransformCommitHandler = vi.fn();
|
||||
setTransformCancelHandler = vi.fn();
|
||||
setWhiteboxHoverLabelChangeHandler = vi.fn();
|
||||
|
||||
@@ -31,6 +31,7 @@ const { MockViewportHost, viewportHostInstances } = vi.hoisted(() => {
|
||||
setCreationPreviewChangeHandler: ReturnType<typeof vi.fn>;
|
||||
setCreationCommitHandler: ReturnType<typeof vi.fn>;
|
||||
setTransformSessionChangeHandler: ReturnType<typeof vi.fn>;
|
||||
setTransformPreviewChangeHandler: ReturnType<typeof vi.fn>;
|
||||
setTransformCancelHandler: ReturnType<typeof vi.fn>;
|
||||
setWhiteboxHoverLabelChangeHandler: ReturnType<typeof vi.fn>;
|
||||
setWhiteboxSelectionMode: ReturnType<typeof vi.fn>;
|
||||
@@ -61,6 +62,7 @@ const { MockViewportHost, viewportHostInstances } = vi.hoisted(() => {
|
||||
setCreationPreviewChangeHandler = vi.fn();
|
||||
setCreationCommitHandler = vi.fn();
|
||||
setTransformSessionChangeHandler = vi.fn();
|
||||
setTransformPreviewChangeHandler = vi.fn();
|
||||
setTransformCancelHandler = vi.fn();
|
||||
setWhiteboxHoverLabelChangeHandler = vi.fn();
|
||||
setWhiteboxSelectionMode = vi.fn();
|
||||
|
||||
@@ -21,6 +21,7 @@ const { MockViewportHost, viewportHostInstances } = vi.hoisted(() => {
|
||||
setCreationPreviewChangeHandler: ReturnType<typeof vi.fn>;
|
||||
setCreationCommitHandler: ReturnType<typeof vi.fn>;
|
||||
setTransformSessionChangeHandler: ReturnType<typeof vi.fn>;
|
||||
setTransformPreviewChangeHandler: ReturnType<typeof vi.fn>;
|
||||
setTransformCommitHandler: ReturnType<typeof vi.fn>;
|
||||
setTransformCancelHandler: ReturnType<typeof vi.fn>;
|
||||
setWhiteboxHoverLabelChangeHandler: ReturnType<typeof vi.fn>;
|
||||
@@ -51,6 +52,7 @@ const { MockViewportHost, viewportHostInstances } = vi.hoisted(() => {
|
||||
setCreationPreviewChangeHandler = vi.fn();
|
||||
setCreationCommitHandler = vi.fn();
|
||||
setTransformSessionChangeHandler = vi.fn();
|
||||
setTransformPreviewChangeHandler = vi.fn();
|
||||
setTransformCommitHandler = vi.fn();
|
||||
setTransformCancelHandler = vi.fn();
|
||||
setWhiteboxHoverLabelChangeHandler = vi.fn();
|
||||
|
||||
@@ -32,6 +32,7 @@ const { MockViewportHost, viewportHostInstances } = vi.hoisted(() => {
|
||||
setCreationPreviewChangeHandler: ReturnType<typeof vi.fn>;
|
||||
setCreationCommitHandler: ReturnType<typeof vi.fn>;
|
||||
setTransformSessionChangeHandler: ReturnType<typeof vi.fn>;
|
||||
setTransformPreviewChangeHandler: ReturnType<typeof vi.fn>;
|
||||
setTransformCommitHandler: ReturnType<typeof vi.fn>;
|
||||
setTransformCancelHandler: ReturnType<typeof vi.fn>;
|
||||
setWhiteboxHoverLabelChangeHandler: ReturnType<typeof vi.fn>;
|
||||
@@ -65,6 +66,7 @@ const { MockViewportHost, viewportHostInstances } = vi.hoisted(() => {
|
||||
setCreationPreviewChangeHandler = vi.fn();
|
||||
setCreationCommitHandler = vi.fn();
|
||||
setTransformSessionChangeHandler = vi.fn();
|
||||
setTransformPreviewChangeHandler = vi.fn();
|
||||
setTransformCommitHandler = vi.fn();
|
||||
setTransformCancelHandler = vi.fn();
|
||||
setWhiteboxHoverLabelChangeHandler = vi.fn();
|
||||
|
||||
@@ -22,6 +22,7 @@ const { MockViewportHost, viewportHostInstances } = vi.hoisted(() => {
|
||||
setCreationPreviewChangeHandler: ReturnType<typeof vi.fn>;
|
||||
setCreationCommitHandler: ReturnType<typeof vi.fn>;
|
||||
setTransformSessionChangeHandler: ReturnType<typeof vi.fn>;
|
||||
setTransformPreviewChangeHandler: ReturnType<typeof vi.fn>;
|
||||
setTransformCommitHandler: ReturnType<typeof vi.fn>;
|
||||
setTransformCancelHandler: ReturnType<typeof vi.fn>;
|
||||
setWhiteboxHoverLabelChangeHandler: ReturnType<typeof vi.fn>;
|
||||
@@ -52,6 +53,7 @@ const { MockViewportHost, viewportHostInstances } = vi.hoisted(() => {
|
||||
setCreationPreviewChangeHandler = vi.fn();
|
||||
setCreationCommitHandler = vi.fn();
|
||||
setTransformSessionChangeHandler = vi.fn();
|
||||
setTransformPreviewChangeHandler = vi.fn();
|
||||
setTransformCommitHandler = vi.fn();
|
||||
setTransformCancelHandler = vi.fn();
|
||||
setWhiteboxHoverLabelChangeHandler = vi.fn();
|
||||
|
||||
@@ -21,6 +21,7 @@ const { MockViewportHost, viewportHostInstances } = vi.hoisted(() => {
|
||||
setCreationPreviewChangeHandler: ReturnType<typeof vi.fn>;
|
||||
setCreationCommitHandler: ReturnType<typeof vi.fn>;
|
||||
setTransformSessionChangeHandler: ReturnType<typeof vi.fn>;
|
||||
setTransformPreviewChangeHandler: ReturnType<typeof vi.fn>;
|
||||
setTransformCommitHandler: ReturnType<typeof vi.fn>;
|
||||
setTransformCancelHandler: ReturnType<typeof vi.fn>;
|
||||
setWhiteboxHoverLabelChangeHandler: ReturnType<typeof vi.fn>;
|
||||
@@ -51,6 +52,7 @@ const { MockViewportHost, viewportHostInstances } = vi.hoisted(() => {
|
||||
setCreationPreviewChangeHandler = vi.fn();
|
||||
setCreationCommitHandler = vi.fn();
|
||||
setTransformSessionChangeHandler = vi.fn();
|
||||
setTransformPreviewChangeHandler = vi.fn();
|
||||
setTransformCommitHandler = vi.fn();
|
||||
setTransformCancelHandler = vi.fn();
|
||||
setWhiteboxHoverLabelChangeHandler = vi.fn();
|
||||
|
||||
@@ -38,6 +38,7 @@ const { MockViewportHost, viewportHostInstances } = vi.hoisted(() => {
|
||||
setCreationPreviewChangeHandler: ReturnType<typeof vi.fn>;
|
||||
setCreationCommitHandler: ReturnType<typeof vi.fn>;
|
||||
setTransformSessionChangeHandler: ReturnType<typeof vi.fn>;
|
||||
setTransformPreviewChangeHandler: ReturnType<typeof vi.fn>;
|
||||
setTransformCommitHandler: ReturnType<typeof vi.fn>;
|
||||
setTransformCancelHandler: ReturnType<typeof vi.fn>;
|
||||
setWhiteboxHoverLabelChangeHandler: ReturnType<typeof vi.fn>;
|
||||
@@ -71,6 +72,7 @@ const { MockViewportHost, viewportHostInstances } = vi.hoisted(() => {
|
||||
setCreationPreviewChangeHandler = vi.fn();
|
||||
setCreationCommitHandler = vi.fn();
|
||||
setTransformSessionChangeHandler = vi.fn();
|
||||
setTransformPreviewChangeHandler = vi.fn();
|
||||
setTransformCommitHandler = vi.fn();
|
||||
setTransformCancelHandler = vi.fn();
|
||||
setWhiteboxHoverLabelChangeHandler = vi.fn();
|
||||
|
||||
@@ -42,6 +42,7 @@ const { MockViewportHost, viewportHostInstances } = vi.hoisted(() => {
|
||||
setCreationPreviewChangeHandler: ReturnType<typeof vi.fn>;
|
||||
setCreationCommitHandler: ReturnType<typeof vi.fn>;
|
||||
setTransformSessionChangeHandler: ReturnType<typeof vi.fn>;
|
||||
setTransformPreviewChangeHandler: ReturnType<typeof vi.fn>;
|
||||
setTransformCommitHandler: ReturnType<typeof vi.fn>;
|
||||
setTransformCancelHandler: ReturnType<typeof vi.fn>;
|
||||
setTerrainBrushCommitHandler: ReturnType<typeof vi.fn>;
|
||||
@@ -74,6 +75,7 @@ const { MockViewportHost, viewportHostInstances } = vi.hoisted(() => {
|
||||
setCreationPreviewChangeHandler = vi.fn();
|
||||
setCreationCommitHandler = vi.fn();
|
||||
setTransformSessionChangeHandler = vi.fn();
|
||||
setTransformPreviewChangeHandler = vi.fn();
|
||||
setTransformCommitHandler = vi.fn();
|
||||
setTransformCancelHandler = vi.fn();
|
||||
setTerrainBrushCommitHandler = vi.fn();
|
||||
|
||||
@@ -28,6 +28,7 @@ const { MockViewportHost, viewportHostInstances } = vi.hoisted(() => {
|
||||
setCreationPreviewChangeHandler: ReturnType<typeof vi.fn>;
|
||||
setCreationCommitHandler: ReturnType<typeof vi.fn>;
|
||||
setTransformSessionChangeHandler: ReturnType<typeof vi.fn>;
|
||||
setTransformPreviewChangeHandler: ReturnType<typeof vi.fn>;
|
||||
setTransformCancelHandler: ReturnType<typeof vi.fn>;
|
||||
setWhiteboxHoverLabelChangeHandler: ReturnType<typeof vi.fn>;
|
||||
setWhiteboxSelectionMode: ReturnType<typeof vi.fn>;
|
||||
@@ -57,6 +58,7 @@ const { MockViewportHost, viewportHostInstances } = vi.hoisted(() => {
|
||||
setCreationPreviewChangeHandler = vi.fn();
|
||||
setCreationCommitHandler = vi.fn();
|
||||
setTransformSessionChangeHandler = vi.fn();
|
||||
setTransformPreviewChangeHandler = vi.fn();
|
||||
setTransformCommitHandler = vi.fn();
|
||||
setTransformCancelHandler = vi.fn();
|
||||
setWhiteboxHoverLabelChangeHandler = vi.fn();
|
||||
|
||||
Reference in New Issue
Block a user