Date: 2025-10-18 Pre-Refactor Baseline
- Total Lines: 10,929
- Top-level Declarations: 321
useState: 82useRef: 58useEffect: 49useMemo: 23useCallback: 55
- Event Handlers (
const handle*): 72 - Touch Handlers (specific): 19
- Render Functions (
const render*): 3 - Helper Functions (marked): 10
beginDragonDragMoveendDragrenderPanelResizersonPanelChanged
normalizeTouchEventhandleTouchStartCanvashandleTouchMoveCanvashandleTouchEndCanvashandleNodeTouchStarthandleNodeTouchMovehandleNodeTouchEnd
handleFullscreenChangehandleResizeclientToCanvasCoordinates
getPortPositioncalculateStaggeredPosition- (Manhattan routing helper)
- (Clean routing helper)
- (Edge intersection helpers)
- (Color interpolation)
onCarouselAnimationStateChangeonCarouselCloseonCarouselReplaceNodeonCarouselExitAnimationComplete
handleNodeControlPanelAnimationCompletehandleConnectionControlPanelAnimationCompletehandleGroupControlPanelAnimationComplete
handleNodePanelDeletehandleNodePanelAddhandleNodePanelUphandleNodePanelOpenInPanelhandleNodePanelDecomposehandleNodePanelAbstractionhandleNodePanelEdithandleNodePanelSavehandleNodePanelMorehandleNodePanelGroup
handleGroupPanelUngrouphandleGroupPanelEdithandleGroupPanelColorhandleGroupPanelConvertToNodeGroup
handleNodeGroupDiveIntoDefinitionhandleNodeGroupOpenInPanel
handleAbstractionDimensionChangehandleAddAbstractionDimensionhandleDeleteAbstractionDimensionhandleExpandAbstractionDimensionhandleAbstractionControlPanelAnimationCompletehandleToggleBookmark
After refactoring, verify:
- All functions exist (in original OR extracted files)
- Line count math: Original = Extracted + Remaining (±50 lines for imports)
- All event handlers still connected
- No orphaned code
- All state variables still used
- All refs still used
- geometryUtils.js (clientToCanvasCoordinates, etc.)
- edgeRouting.js (Manhattan, clean routing)
- colorUtils.js (interpolation)
- portPositioning.js (getPortPosition, calculateStaggeredPosition)
- useWheelInput.js
- useTouchInput.js (6 functions)
- useMouseInput.js
- usePanZoom.js
- useSelectionBox.js
- PanelResizers.jsx (4 functions)
- useNodeActions.js (14 node panel handlers)
- useGroupActions.js (4 group handlers)
- useAbstractionActions.js (5 abstraction handlers)
- useCarousel.js (4 carousel handlers)
Phase 1 COMPLETE: Pure helpers extracted (631 lines) Phase 2 COMPLETE: Unified actions hook created (155 lines)
✅ colorUtils.js ✅ portPositioning.js ✅ edgeRouting.js ✅ geometryUtils.js ✅ useNodeActions.js
Current: 10,450 lines Reduction: 479 lines (4.4%)
See .refactor-progress.md for detailed progress report.
Target Lines in NodeCanvas.jsx: ~3,000-3,500 Remaining Reduction Needed: ~65%