fix: Locked tool + arrow

This commit is contained in:
Mark Tolmacs
2025-09-16 17:05:57 +02:00
parent f2f5168355
commit 32526c4d4a
2 changed files with 21 additions and 17 deletions

View File

@@ -134,6 +134,8 @@ export const actionFinalize = register<FormData>({
}); });
} }
const activeToolLocked = appState.activeTool?.locked;
console.log("finalize - activeToolLocked:", activeToolLocked);
return { return {
elements: elements:
element.points.length < 2 || isInvisiblySmallElement(element) element.points.length < 2 || isInvisiblySmallElement(element)
@@ -147,15 +149,17 @@ export const actionFinalize = register<FormData>({
appState: { appState: {
...appState, ...appState,
cursorButton: "up", cursorButton: "up",
selectedLinearElement: { selectedLinearElement: activeToolLocked
...linearElementEditor, ? null
selectedPointsIndices: null, : {
isEditing: false, ...linearElementEditor,
initialState: { selectedPointsIndices: null,
...linearElementEditor.initialState, isEditing: false,
lastClickedPoint: -1, initialState: {
}, ...linearElementEditor.initialState,
}, lastClickedPoint: -1,
},
},
selectionElement: null, selectionElement: null,
suggestedBinding: null, suggestedBinding: null,
newElement: null, newElement: null,

View File

@@ -3194,14 +3194,14 @@ class App extends React.Component<AppProps, AppState> {
this.setState({ editingTextElement: null }); this.setState({ editingTextElement: null });
} }
if ( // if (
this.state.selectedLinearElement && // this.state.selectedLinearElement &&
!this.state.selectedElementIds[this.state.selectedLinearElement.elementId] // !this.state.selectedElementIds[this.state.selectedLinearElement.elementId]
) { // ) {
// To make sure `selectedLinearElement` is in sync with `selectedElementIds`, however this shouldn't be needed once // // To make sure `selectedLinearElement` is in sync with `selectedElementIds`, however this shouldn't be needed once
// we have a single API to update `selectedElementIds` // // we have a single API to update `selectedElementIds`
this.setState({ selectedLinearElement: null }); // this.setState({ selectedLinearElement: null });
} // }
this.store.commit(elementsMap, this.state); this.store.commit(elementsMap, this.state);