Files
editor/packages
Wassim SAMADandClaude Opus 4.7 ff147626bb 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>
2026-05-19 19:07:59 -04:00
..
2026-01-21 10:03:29 +09:00
2026-02-05 08:35:09 +09:00
2026-02-26 22:09:40 -05:00