Improve transform session state management by explicitly clearing the active session reference upon state changes, clear operations, or errors.
This commit is contained in:
@@ -6821,14 +6821,14 @@ export function App({ store, initialStatusMessage }: AppProps) {
|
|||||||
store.setActiveViewportPanel(transformSourcePanelId);
|
store.setActiveViewportPanel(transformSourcePanelId);
|
||||||
}
|
}
|
||||||
|
|
||||||
store.setTransformSession(
|
const nextTransformSession = createTransformSession({
|
||||||
createTransformSession({
|
source,
|
||||||
source,
|
sourcePanelId: transformSourcePanelId,
|
||||||
sourcePanelId: transformSourcePanelId,
|
operation,
|
||||||
operation,
|
target: transformTarget
|
||||||
target: transformTarget
|
});
|
||||||
})
|
latestActiveTransformSessionRef.current = nextTransformSession;
|
||||||
);
|
store.setTransformSession(nextTransformSession);
|
||||||
setStatusMessage(
|
setStatusMessage(
|
||||||
`${getTransformOperationLabel(operation)} ${getTransformTargetLabel(transformTarget).toLowerCase()} in ${getViewportPanelLabel(
|
`${getTransformOperationLabel(operation)} ${getTransformTargetLabel(transformTarget).toLowerCase()} in ${getViewportPanelLabel(
|
||||||
transformSourcePanelId
|
transformSourcePanelId
|
||||||
@@ -6843,6 +6843,7 @@ export function App({ store, initialStatusMessage }: AppProps) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
latestActiveTransformSessionRef.current = null;
|
||||||
store.clearTransformSession();
|
store.clearTransformSession();
|
||||||
setStatusMessage(status);
|
setStatusMessage(status);
|
||||||
};
|
};
|
||||||
@@ -6851,12 +6852,14 @@ export function App({ store, initialStatusMessage }: AppProps) {
|
|||||||
activeTransformSession: ActiveTransformSession
|
activeTransformSession: ActiveTransformSession
|
||||||
) => {
|
) => {
|
||||||
if (!doesTransformSessionChangeTarget(activeTransformSession)) {
|
if (!doesTransformSessionChangeTarget(activeTransformSession)) {
|
||||||
|
latestActiveTransformSessionRef.current = null;
|
||||||
store.clearTransformSession();
|
store.clearTransformSession();
|
||||||
setStatusMessage("No transform change was committed.");
|
setStatusMessage("No transform change was committed.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
latestActiveTransformSessionRef.current = null;
|
||||||
store.clearTransformSession();
|
store.clearTransformSession();
|
||||||
store.executeCommand(
|
store.executeCommand(
|
||||||
createCommitTransformSessionCommand(
|
createCommitTransformSessionCommand(
|
||||||
@@ -6868,6 +6871,7 @@ export function App({ store, initialStatusMessage }: AppProps) {
|
|||||||
`${getTransformOperationPastTense(activeTransformSession.operation)} ${getTransformTargetLabel(activeTransformSession.target).toLowerCase()}.`
|
`${getTransformOperationPastTense(activeTransformSession.operation)} ${getTransformTargetLabel(activeTransformSession.target).toLowerCase()}.`
|
||||||
);
|
);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
latestActiveTransformSessionRef.current = null;
|
||||||
store.clearTransformSession();
|
store.clearTransformSession();
|
||||||
setStatusMessage(getErrorMessage(error));
|
setStatusMessage(getErrorMessage(error));
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user