From d9e8e0be4ca103850aa4d2295badde3fe274362b Mon Sep 17 00:00:00 2001 From: Victor Giers Date: Wed, 13 May 2026 05:07:48 +0200 Subject: [PATCH] Refactor path point addition to support insertion after a specific point --- src/app/App.tsx | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/src/app/App.tsx b/src/app/App.tsx index e6ec16ef..14660602 100644 --- a/src/app/App.tsx +++ b/src/app/App.tsx @@ -10036,12 +10036,25 @@ export function App({ } try { - const nextPoint = createAppendedScenePathPoint(selectedPath); + const insertAfterPointId = getPathPointInsertionAnchorId( + editorState.selection, + selectedPath, + editorState.activeSelectionId + ); + const nextPoint = + insertAfterPointId === null + ? createAppendedScenePathPoint(selectedPath) + : createScenePathPointAfter(selectedPath, insertAfterPointId); + const nextPointIndex = + insertAfterPointId === null + ? selectedPath.points.length + : getScenePathPointIndex(selectedPath, insertAfterPointId) + 1; store.executeCommand( createAddPathPointCommand({ pathId: selectedPath.id, point: nextPoint, + insertAfterPointId: insertAfterPointId ?? undefined, label: "Add path point" }) ); @@ -10083,20 +10096,20 @@ export function App({ latestActiveTransformSessionRef.current = nextTransformSession; store.setTransformSession(nextTransformSession); setStatusMessage( - `Appended path point ${selectedPath.points.length + 1}. Move the pointer, click or press Enter to place it.` + `Added path point ${nextPointIndex + 1}. Move the pointer, click or press Enter to place it.` ); return; } setStatusMessage( transformTargetResult.message ?? - "Appended path point, but could not start grab mode." + "Added path point, but could not start grab mode." ); return; } setStatusMessage( - `Appended path point ${selectedPath.points.length + 1} to ${getPathLabelById(selectedPath.id, pathList)}.` + `Added path point ${nextPointIndex + 1} to ${getPathLabelById(selectedPath.id, pathList)}.` ); } catch (error) { setStatusMessage(getErrorMessage(error));