diff --git a/apps/ai-game-creator-shell/src/view/ui-editor/components/RecognitionAndBindingOverview.tsx b/apps/ai-game-creator-shell/src/view/ui-editor/components/RecognitionAndBindingOverview.tsx index ee990c6ef..bb885f1c5 100644 --- a/apps/ai-game-creator-shell/src/view/ui-editor/components/RecognitionAndBindingOverview.tsx +++ b/apps/ai-game-creator-shell/src/view/ui-editor/components/RecognitionAndBindingOverview.tsx @@ -5,6 +5,7 @@ import { nodeHasBlockedComponents, nodeNeedsComponentReview, } from '../../../features/ui-editor/bindingOverview'; +import type { StageStatusField } from '../../../features/ui-editor/stageStatusOverview'; import { getStageStatusOverview, isBlocked, @@ -23,7 +24,11 @@ export function RecognitionAndBindingOverview({ }: { uiTrees: UITree[]; sprites: Record; - onFocusStatusNode: (treeId: UIDesignImageId, nodeId: NodeId) => void; + onFocusStatusNode: ( + treeId: UIDesignImageId, + nodeId: NodeId, + field: StageStatusField, + ) => void; }) { const recognition = useMemo( () => getStageStatusOverview(uiTrees, 'layout_status'), @@ -35,7 +40,8 @@ export function RecognitionAndBindingOverview({ ); const layoutAttentionCycle = useUiTreeNodeCycle({ uiTrees, - onFocusNode: onFocusStatusNode, + onFocusNode: (treeId, nodeId) => + onFocusStatusNode(treeId, nodeId, 'layout_status'), matches: ({ node }) => { const status = node.metadata.layout_status; return isBlocked(status) || isNeedReview(status); @@ -43,17 +49,20 @@ export function RecognitionAndBindingOverview({ }); const layoutBlockedCycle = useUiTreeNodeCycle({ uiTrees, - onFocusNode: onFocusStatusNode, + onFocusNode: (treeId, nodeId) => + onFocusStatusNode(treeId, nodeId, 'layout_status'), matches: ({ node }) => isBlocked(node.metadata.layout_status), }); const componentAttentionCycle = useUiTreeNodeCycle({ uiTrees, - onFocusNode: onFocusStatusNode, + onFocusNode: (treeId, nodeId) => + onFocusStatusNode(treeId, nodeId, 'components_status'), matches: nodeNeedsComponentReview, }); const componentBlockedCycle = useUiTreeNodeCycle({ uiTrees, - onFocusNode: onFocusStatusNode, + onFocusNode: (treeId, nodeId) => + onFocusStatusNode(treeId, nodeId, 'components_status'), matches: nodeHasBlockedComponents, }); diff --git a/apps/ai-game-creator-shell/src/view/ui-editor/index.tsx b/apps/ai-game-creator-shell/src/view/ui-editor/index.tsx index cdd3e1c92..231376faf 100644 --- a/apps/ai-game-creator-shell/src/view/ui-editor/index.tsx +++ b/apps/ai-game-creator-shell/src/view/ui-editor/index.tsx @@ -274,9 +274,9 @@ export default function UiEditorPage({ { + onFocusStatusNode={(treeId, nodeId, field) => { session.input.focusNode(treeId, nodeId); - session.input.highlightStatusField(nodeId, 'layout_status'); + session.input.highlightStatusField(nodeId, field); }} /> ) : (