fix: refresh wooden fish draft shelf after generation
This commit is contained in:
@@ -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(() => {
|
||||
|
||||
Reference in New Issue
Block a user