fix: 进度持久化与断点恢复 + VoiceInput 权限/异常加固 + Jev 故障优雅降级
This commit is contained in:
@@ -42,6 +42,7 @@ function buildState(events: StoryEvent[]): string {
|
||||
export function ReportPage({ store, jev, onReplay }: Props) {
|
||||
const [scores, setScores] = useState<DimensionScore[] | null>(null);
|
||||
const [error, setError] = useState<string | null>(null);
|
||||
const [retry, setRetry] = useState(0);
|
||||
|
||||
useEffect(() => {
|
||||
let cancelled = false;
|
||||
@@ -79,14 +80,24 @@ export function ReportPage({ store, jev, onReplay }: Props) {
|
||||
return () => {
|
||||
cancelled = true;
|
||||
};
|
||||
}, [store, jev]);
|
||||
}, [store, jev, retry]);
|
||||
|
||||
if (error) {
|
||||
return (
|
||||
<div className="report">
|
||||
<h1>画像报告生成失败</h1>
|
||||
<p>{error}</p>
|
||||
<button className="primary" onClick={onReplay}>
|
||||
<button
|
||||
className="primary"
|
||||
onClick={() => {
|
||||
setError(null);
|
||||
setScores(null);
|
||||
setRetry((r) => r + 1);
|
||||
}}
|
||||
>
|
||||
画像生成失败,点此重试
|
||||
</button>
|
||||
<button className="secondary" onClick={onReplay}>
|
||||
回到剧情
|
||||
</button>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user