Final integration step. The MazeNET page shell is now a thinner composition of the existing module-level hooks (useMazeApi, useMazeInteraction, useTopologyEditor, useTopologyStream, useLayoutPersistor) PLUS the three new ones from this phase (useFullscreenMode, useTopologyData, useMazeContextMenu). - MazeNET.tsx: 980 -> 715 LOC. The fullscreen + body-class effects, the topology hydrate / SSE stream / deploy / flashErr plumbing, and the four context-menu builders are all gone from the shell. - Page still owns the per-operation editor callbacks (removeNet/Node/Edge, duplicateNode, addServiceToNode, etc.) because they need direct access to setNodes/setEdges/setNets for optimistic patches alongside their REST calls — those setters are exposed by useTopologyData for that reason. Coverage floor bumped after the phase: lines 17 -> 19 functions 15 -> 17 branches 13 -> 14 statements 16 -> 18 Phase 5 final scoreboard: 37 test files, 172 tests, all green.
2.2 KiB
2.2 KiB