提取工作流完成状态上报逻辑
统一成功与失败分支的提示拼接、状态更新和终态通知 保持三个工作流步骤现有消息与状态行为不变
This commit is contained in:
@@ -258,6 +258,17 @@ export function useUiEditorSession(
|
||||
const [completionNotice, setCompletionNotice] =
|
||||
useState<WorkflowCompletionNotice | null>(null);
|
||||
|
||||
function reportWorkflowCompletion(
|
||||
step: UiEditorStepId,
|
||||
outcome: WorkflowCompletionNotice['outcome'],
|
||||
rawMessage: string,
|
||||
setStatus: (message: string) => void,
|
||||
) {
|
||||
const message = appendWorkflowCheckPrompt(rawMessage);
|
||||
setStatus(message);
|
||||
setCompletionNotice({ step, outcome, message });
|
||||
}
|
||||
|
||||
useEffect(() => {
|
||||
setActiveStep(initialStep);
|
||||
setFurthestStepIndex(normalizedInitialFurthestStepIndex);
|
||||
@@ -974,26 +985,20 @@ export function useUiEditorSession(
|
||||
);
|
||||
editor.replaceState(applyUiDesignSuggestions(snapshot, suggestions));
|
||||
setHasSuggested(true);
|
||||
const message = appendWorkflowCheckPrompt(
|
||||
reportWorkflowCompletion(
|
||||
'reference-analysis',
|
||||
'success',
|
||||
`参考图分析完成:已应用 ${suggestions.length} 条参考图语义建议`,
|
||||
setSuggestionStatus,
|
||||
);
|
||||
setSuggestionStatus(message);
|
||||
setCompletionNotice({
|
||||
step: 'reference-analysis',
|
||||
outcome: 'success',
|
||||
message,
|
||||
});
|
||||
});
|
||||
} catch (cause) {
|
||||
const message = appendWorkflowCheckPrompt(
|
||||
reportWorkflowCompletion(
|
||||
'reference-analysis',
|
||||
'failure',
|
||||
cause instanceof Error ? cause.message : String(cause),
|
||||
setSuggestionStatus,
|
||||
);
|
||||
setSuggestionStatus(message);
|
||||
setCompletionNotice({
|
||||
step: 'reference-analysis',
|
||||
outcome: 'failure',
|
||||
message,
|
||||
});
|
||||
} finally {
|
||||
setIsSuggesting(false);
|
||||
}
|
||||
@@ -1018,26 +1023,20 @@ export function useUiEditorSession(
|
||||
nextState.ui_trees,
|
||||
'layout_status',
|
||||
);
|
||||
const message = appendWorkflowCheckPrompt(
|
||||
reportWorkflowCompletion(
|
||||
'structure-recognition',
|
||||
'success',
|
||||
`界面结构识别完成:已替换 ${result.ui_trees.length} 棵界面树,待检查 ${overview.needsAttention} 项(必须修复 ${overview.blocked} 项)`,
|
||||
setRecognitionStatus,
|
||||
);
|
||||
setRecognitionStatus(message);
|
||||
setCompletionNotice({
|
||||
step: 'structure-recognition',
|
||||
outcome: 'success',
|
||||
message,
|
||||
});
|
||||
});
|
||||
} catch (cause) {
|
||||
const message = appendWorkflowCheckPrompt(
|
||||
reportWorkflowCompletion(
|
||||
'structure-recognition',
|
||||
'failure',
|
||||
cause instanceof Error ? cause.message : String(cause),
|
||||
setRecognitionStatus,
|
||||
);
|
||||
setRecognitionStatus(message);
|
||||
setCompletionNotice({
|
||||
step: 'structure-recognition',
|
||||
outcome: 'failure',
|
||||
message,
|
||||
});
|
||||
} finally {
|
||||
setIsRecognizing(false);
|
||||
}
|
||||
@@ -1092,27 +1091,21 @@ export function useUiEditorSession(
|
||||
history: index < batches.length - 1 ? 'skip' : 'record',
|
||||
});
|
||||
}
|
||||
const message = appendWorkflowCheckPrompt(
|
||||
reportWorkflowCompletion(
|
||||
'visual-binding',
|
||||
'success',
|
||||
`视觉素材绑定完成:已处理 ${batches.length}/${batches.length} 个批次`,
|
||||
setBindingStatus,
|
||||
);
|
||||
setBindingStatus(message);
|
||||
setHasBound(true);
|
||||
setCompletionNotice({
|
||||
step: 'visual-binding',
|
||||
outcome: 'success',
|
||||
message,
|
||||
});
|
||||
});
|
||||
} catch (cause) {
|
||||
const message = appendWorkflowCheckPrompt(
|
||||
reportWorkflowCompletion(
|
||||
'visual-binding',
|
||||
'failure',
|
||||
cause instanceof Error ? cause.message : String(cause),
|
||||
setBindingStatus,
|
||||
);
|
||||
setBindingStatus(message);
|
||||
setCompletionNotice({
|
||||
step: 'visual-binding',
|
||||
outcome: 'failure',
|
||||
message,
|
||||
});
|
||||
} finally {
|
||||
setIsBinding(false);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user