floorplan-panel: remove dead action menu, handle layers, selected* state and handlers
Continuing the post-migration cleanup. After registry-driven kinds absorbed selection chrome, action menus, and boundary editing through `def.floorplanAffordances`, the legacy plumbing in `floorplan-panel.tsx` was left mounted with empty inputs — another ~4k LoC of dead code. Removed: - `Editor2dFloorplanActionMenuLayer` mount + its 10 `selectedX ActionMenuPosition` useMemos. All ten action menus computed positions from empty entry arrays / null `selectedXEntry`, so the layer never rendered anything. `FloorplanRegistryActionMenu` is the only mount left. - Legacy handle layers: `FloorplanWallEndpointLayer`, `FloorplanFenceEndpointLayer`, `FloorplanWallCurveHandleLayer`, and the four `FloorplanPolygonHandleLayer` mounts for slab / slab-hole / ceiling / ceiling-hole — all rendered from `wallEndpointHandles` / `slabVertexHandles` / etc. which were empty after the registry took over endpoint, curve, and polygon affordances. - `FloorplanZoneLabelLayer` mount + component. Zone labels are now emitted as `kind: 'text'` from `def.floorplan` on the zone kind. - Dead handlers: every `handle*Select`, `handle*PointerDown`, `handle*DoubleClick`, `handle*HoverChange`, `handleFloorplan*Hover Enter`, `handleSelected*` (Move/Delete/Duplicate/AddHole/HoleMove/ HoleDelete/Curve for all 10 legacy kinds), `duplicateSelected*`, `handleSelectedWallCurve`, `handleSlabVertex*`/`Midpoint*`/`Edge*`/ `Hole*` (same for ceiling and zone), `handleWallEndpointPointerDown`, `handleFenceEndpointPointerDown`, `handleWallCurvePointerDown`, `emitFloorplanNodeClick`, `syncDeleteHoveredId`, `handleZoneLabelClick`, `hasDuplicatableFloorplanSelection`, `handleDuplicateFloorplanSelection`, `FloorplanDuplicateHotkey` mount. - Dead handle data: `wallEndpointHandles`, `fenceEndpointHandles`, `wallCurveHandles`, `canCurveSelectedWall`, and all the slab/slab-hole/ceiling/ceiling-hole/zone vertex+midpoint+edge handle useMemos. - Dead selection / measurement useMemos: `selectedItemEntry`, `selectedOpeningEntry`, `selectedSpawnEntry`, `selectedFenceEntry`, `selectedStairEntry`, `selectedRoofEntry`, `selectedElevatorEntry`, `selectedWallEntry`, plus `selectedItemClearanceMeasurements` and `movingOpeningPlacementMeasurements` (both 100-200 lines of math that consumed the empty entries). - Two dead `<FloorplanMeasurementsLayer>` mounts (clearance / opening placement) — both fed by useMemos that returned `[]`. - `<FloorplanZoneLayer>` mount — `visibleZonePolygons` is always empty. Kept: - `siteVertexHandles` / `siteMidpointHandles` + `<FloorplanPolygonHandle Layer>` mount for site — site is the only kind not registry-driven. - `FloorplanStairLayer` mount (preview-only, hover/click props swapped for noop helpers since the preview isn't interactive). - Stub `selectedSlabEntry` / `selectedCeilingEntry` / `selectedZoneEntry` as `null` typed values so the remaining hole-editing fallback code compiles. Those fallbacks themselves run as no-ops now and can be torn down in a follow-up. Floor-plan panel: 14,395 → 10,466 lines (-3,929). Cumulative reduction vs `main`: 17,913 → 10,466 (-7,447 lines, ~42%). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.7
parent
c6bef1ec2f
commit
ff147626bb