Add requestViewportCameraSync function and update related logic in App.tsx

This commit is contained in:
2026-04-11 03:22:25 +02:00
parent e6e40246ce
commit 3f9e89569f

View File

@@ -2459,6 +2459,10 @@ export function App({ store, initialStatusMessage }: AppProps) {
}
};
const requestViewportCameraSync = () => {
setViewportCameraSyncRequestId((current) => current + 1);
};
const openAddMenuAt = (position: HierarchicalMenuPosition) => {
setHoveredAssetId(null);
setAddMenuPosition(position);
@@ -2598,6 +2602,7 @@ export function App({ store, initialStatusMessage }: AppProps) {
}
store.clearTransformSession();
requestViewportCameraSync();
setStatusMessage(status);
};
@@ -2606,6 +2611,7 @@ export function App({ store, initialStatusMessage }: AppProps) {
) => {
if (!doesTransformSessionChangeTarget(activeTransformSession)) {
store.clearTransformSession();
requestViewportCameraSync();
setStatusMessage("No transform change was committed.");
return;
}
@@ -2618,11 +2624,13 @@ export function App({ store, initialStatusMessage }: AppProps) {
activeTransformSession
)
);
requestViewportCameraSync();
setStatusMessage(
`${getTransformOperationPastTense(activeTransformSession.operation)} ${getTransformTargetLabel(activeTransformSession.target).toLowerCase()}.`
);
} catch (error) {
store.clearTransformSession();
requestViewportCameraSync();
setStatusMessage(getErrorMessage(error));
}
};
@@ -3910,6 +3918,7 @@ export function App({ store, initialStatusMessage }: AppProps) {
try {
store.executeCommand(createDeleteBoxBrushCommand(brushId));
requestViewportCameraSync();
setStatusMessage(`Deleted ${label}.`);
return true;
} catch (error) {
@@ -3931,6 +3940,7 @@ export function App({ store, initialStatusMessage }: AppProps) {
try {
store.executeCommand(createDeleteEntityCommand(entityId));
requestViewportCameraSync();
setStatusMessage(`Deleted ${label}.`);
return true;
} catch (error) {
@@ -3952,6 +3962,7 @@ export function App({ store, initialStatusMessage }: AppProps) {
try {
store.executeCommand(createDeleteModelInstanceCommand(modelInstanceId));
requestViewportCameraSync();
setStatusMessage(`Deleted ${label}.`);
return true;
} catch (error) {
@@ -7023,6 +7034,7 @@ export function App({ store, initialStatusMessage }: AppProps) {
toolPreview={viewportToolPreview}
transformSession={transformSession}
cameraState={editorState.viewportPanels[panelId].cameraState}
cameraSyncRequestId={viewportCameraSyncRequestId}
focusRequestId={
focusRequest.panelId === panelId ? focusRequest.id : 0
}