fix: refresh wooden fish draft shelf after generation
This commit is contained in:
@@ -2094,6 +2094,8 @@ function buildDraftCompletionDialogSource(
|
|||||||
return formatPlatformTaskCompletionSource('方洞挑战草稿', sourceId);
|
return formatPlatformTaskCompletionSource('方洞挑战草稿', sourceId);
|
||||||
case 'jump-hop':
|
case 'jump-hop':
|
||||||
return formatPlatformTaskCompletionSource('跳一跳草稿', sourceId);
|
return formatPlatformTaskCompletionSource('跳一跳草稿', sourceId);
|
||||||
|
case 'wooden-fish':
|
||||||
|
return formatPlatformTaskCompletionSource('敲木鱼草稿', sourceId);
|
||||||
case 'puzzle':
|
case 'puzzle':
|
||||||
return formatPlatformTaskCompletionSource('拼图草稿', sourceId);
|
return formatPlatformTaskCompletionSource('拼图草稿', sourceId);
|
||||||
case 'visual-novel':
|
case 'visual-novel':
|
||||||
@@ -8886,6 +8888,8 @@ export function PlatformEntryFlowShellImpl({
|
|||||||
setWoodenFishGenerationState(generationState);
|
setWoodenFishGenerationState(generationState);
|
||||||
setIsWoodenFishBusy(true);
|
setIsWoodenFishBusy(true);
|
||||||
setSelectionStage('wooden-fish-generating');
|
setSelectionStage('wooden-fish-generating');
|
||||||
|
markDraftGenerating('wooden-fish', [created.session.sessionId]);
|
||||||
|
markPendingDraftGenerating('wooden-fish', created.session.sessionId);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const response = await woodenFishClient.executeAction(
|
const response = await woodenFishClient.executeAction(
|
||||||
@@ -8920,6 +8924,30 @@ export function PlatformEntryFlowShellImpl({
|
|||||||
setWoodenFishGenerationState(
|
setWoodenFishGenerationState(
|
||||||
createReadyWoodenFishGenerationState(generationState),
|
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');
|
setSelectionStage('wooden-fish-result');
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
const errorMessage = resolveRpgCreationErrorMessage(
|
const errorMessage = resolveRpgCreationErrorMessage(
|
||||||
@@ -8954,7 +8982,15 @@ export function PlatformEntryFlowShellImpl({
|
|||||||
setIsWoodenFishBusy(false);
|
setIsWoodenFishBusy(false);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
[createReadyWoodenFishGenerationState, setSelectionStage],
|
[
|
||||||
|
createReadyWoodenFishGenerationState,
|
||||||
|
markDraftGenerating,
|
||||||
|
markDraftReady,
|
||||||
|
markPendingDraftGenerating,
|
||||||
|
markPendingDraftReady,
|
||||||
|
refreshWoodenFishShelf,
|
||||||
|
setSelectionStage,
|
||||||
|
],
|
||||||
);
|
);
|
||||||
|
|
||||||
const retryWoodenFishDraftGeneration = useCallback(() => {
|
const retryWoodenFishDraftGeneration = useCallback(() => {
|
||||||
|
|||||||
Reference in New Issue
Block a user