Fix Conditional React Hooks in EditorScene.tsx #3

Closed
opened 2026-06-06 21:04:42 +00:00 by Mark · 0 comments
Owner

Multiple React hooks (useCallback, useMemo, useEffect, useFrame) are called conditionally after early returns, violating Rules of Hooks.

Files/Lines:

  • src/pages/editor/EditorScene.tsx:143 - useCallback in TransformGizmo
  • src/pages/editor/EditorScene.tsx:271 - useCallback in SlicePlaneVisual
  • src/pages/editor/EditorScene.tsx:300 - useCallback in SlicePlaneVisual
  • src/pages/editor/EditorScene.tsx:305 - useEffect in SlicePlaneVisual
  • src/pages/editor/EditorScene.tsx:317 - useMemo in SlicePlaneVisual
  • src/pages/editor/EditorScene.tsx:339 - useMemo in SlicePlaneVisual
  • src/pages/editor/EditorScene.tsx:508 - useCallback in BoneVisuals (after if (!showSkeleton) return null;)
  • src/pages/editor/EditorScene.tsx:642 - useFrame in JointDetectionRings (after if (activeTool !== "joint") return null;)

Fix: Move all hooks to the top of component functions, before any early returns. Use conditional logic inside hooks or render JSX conditionally instead.

Multiple React hooks (`useCallback`, `useMemo`, `useEffect`, `useFrame`) are called conditionally after early returns, violating Rules of Hooks. **Files/Lines:** - `src/pages/editor/EditorScene.tsx:143` - `useCallback` in `TransformGizmo` - `src/pages/editor/EditorScene.tsx:271` - `useCallback` in `SlicePlaneVisual` - `src/pages/editor/EditorScene.tsx:300` - `useCallback` in `SlicePlaneVisual` - `src/pages/editor/EditorScene.tsx:305` - `useEffect` in `SlicePlaneVisual` - `src/pages/editor/EditorScene.tsx:317` - `useMemo` in `SlicePlaneVisual` - `src/pages/editor/EditorScene.tsx:339` - `useMemo` in `SlicePlaneVisual` - `src/pages/editor/EditorScene.tsx:508` - `useCallback` in `BoneVisuals` (after `if (!showSkeleton) return null;`) - `src/pages/editor/EditorScene.tsx:642` - `useFrame` in `JointDetectionRings` (after `if (activeTool !== "joint") return null;`) **Fix:** Move all hooks to the top of component functions, before any early returns. Use conditional logic inside hooks or render JSX conditionally instead.
Mark closed this issue 2026-06-14 10:13:54 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Mark/kimi_agent_hero_forge_slice_issue#3
No description provided.