task(CAD-14): phase 3 - V2 select tool on v2 doc (click via bridge hitTest, shift-additive, box-select by center-in-bbox, onChange app channel via ref), bridge onChange wired

This commit is contained in:
Agent Zero
2026-09-16 22:03:15 +02:00
parent 180aa9b03a
commit 1d129042d4
4 changed files with 197 additions and 5 deletions
+6
View File
@@ -46,6 +46,9 @@ const CanvasArea: React.FC<CanvasAreaProps> = ({
/** CAD-14: Frische Prop-Referenz gegen Stale-Closure (Dispatcher/onChanged sind einmalig registriert). */
const onElementCreatedRef = useRef(onElementCreated);
onElementCreatedRef.current = onElementCreated;
/** CAD-14: Frische Prop-Referenz für Selection-Änderungen aus V2-Werkzeugen. */
const onSelectionChangeRef = useRef(onSelectionChange);
onSelectionChangeRef.current = onSelectionChange;
const spatialIndexRef = useRef<SpatialIndex | null>(null);
const layerManagerRef = useRef<LayerManager | null>(null);
const selectionEngineRef = useRef<SelectionEngine | null>(null);
@@ -170,6 +173,9 @@ const CanvasArea: React.FC<CanvasAreaProps> = ({
getIds: () => Array.from(selectionEngine.getSelectedIds()),
setIds: (ids) => selectionEngine.selectByIds(ids, false),
hitTest: (wx, wy, tol) => renderEngine.hitTest(wx, wy, tol),
// CAD-14: App-Kanal fuer V2-Werkzeuge (selectTool) — via Ref gegen
// Stale-Closure, derselbe Kanal wie die Legacy-Engine nutzt.
onChange: (ids) => onSelectionChangeRef.current?.(ids),
}),
});