fix: refresh wooden fish draft shelf after generation

This commit is contained in:
kdletters
2026-05-28 00:49:27 +08:00
parent 418fcb0548
commit e14061a0fe

View File

@@ -2094,6 +2094,8 @@ function buildDraftCompletionDialogSource(
return formatPlatformTaskCompletionSource('方洞挑战草稿', sourceId);
case 'jump-hop':
return formatPlatformTaskCompletionSource('跳一跳草稿', sourceId);
case 'wooden-fish':
return formatPlatformTaskCompletionSource('敲木鱼草稿', sourceId);
case 'puzzle':
return formatPlatformTaskCompletionSource('拼图草稿', sourceId);
case 'visual-novel':
@@ -8886,6 +8888,8 @@ export function PlatformEntryFlowShellImpl({
setWoodenFishGenerationState(generationState);
setIsWoodenFishBusy(true);
setSelectionStage('wooden-fish-generating');
markDraftGenerating('wooden-fish', [created.session.sessionId]);
markPendingDraftGenerating('wooden-fish', created.session.sessionId);
try {
const response = await woodenFishClient.executeAction(
@@ -8920,6 +8924,30 @@ export function PlatformEntryFlowShellImpl({
setWoodenFishGenerationState(
createReadyWoodenFishGenerationState(generationState),
);
if (response.work) {
setWoodenFishWorks((current) => [
response.work!.summary,
...current.filter(
(item) => item.workId !== response.work!.summary.workId,
),
]);
markPendingDraftReady(
'wooden-fish',
created.session.sessionId,
false,
);
markDraftReady(
'wooden-fish',
[
created.session.sessionId,
response.work.summary.workId,
response.work.summary.profileId,
response.work.summary.sourceSessionId,
],
false,
);
void refreshWoodenFishShelf().catch(() => undefined);
}
setSelectionStage('wooden-fish-result');
} catch (error) {
const errorMessage = resolveRpgCreationErrorMessage(
@@ -8954,7 +8982,15 @@ export function PlatformEntryFlowShellImpl({
setIsWoodenFishBusy(false);
}
},
[createReadyWoodenFishGenerationState, setSelectionStage],
[
createReadyWoodenFishGenerationState,
markDraftGenerating,
markDraftReady,
markPendingDraftGenerating,
markPendingDraftReady,
refreshWoodenFishShelf,
setSelectionStage,
],
);
const retryWoodenFishDraftGeneration = useCallback(() => {