fix: 收紧拼图草稿恢复判定
This commit is contained in:
@@ -571,6 +571,10 @@ import {
|
||||
resolvePlatformPublicWorkStartIntent,
|
||||
resolveVisiblePuzzleDetailCoverCount,
|
||||
} from './platformPublicWorkDetailFlow';
|
||||
import {
|
||||
hasRecoverableGeneratedPuzzleDraft,
|
||||
normalizeRecoveredPuzzleDraftSession,
|
||||
} from './platformPuzzleDraftRecoveryModel';
|
||||
import {
|
||||
buildPuzzleResultProfileId,
|
||||
buildPuzzleResultWorkId,
|
||||
@@ -1045,77 +1049,6 @@ function openPuzzleRuntimeStage(
|
||||
writePuzzleRuntimeUrlState(state);
|
||||
}
|
||||
|
||||
function normalizeRecoveredPuzzleDraftSession(
|
||||
session: PuzzleAgentSessionSnapshot,
|
||||
): PuzzleAgentSessionSnapshot {
|
||||
const draft = session.draft;
|
||||
if (!draft) {
|
||||
return session;
|
||||
}
|
||||
|
||||
const primaryLevel = draft.levels?.[0];
|
||||
const selectedCandidate =
|
||||
primaryLevel?.candidates.find((candidate) => candidate.selected) ??
|
||||
primaryLevel?.candidates[0] ??
|
||||
draft.candidates.find((candidate) => candidate.selected) ??
|
||||
draft.candidates[0] ??
|
||||
null;
|
||||
const coverImageSrc =
|
||||
draft.coverImageSrc?.trim() ||
|
||||
primaryLevel?.coverImageSrc?.trim() ||
|
||||
selectedCandidate?.imageSrc.trim() ||
|
||||
null;
|
||||
const coverAssetId =
|
||||
draft.coverAssetId?.trim() ||
|
||||
primaryLevel?.coverAssetId?.trim() ||
|
||||
selectedCandidate?.assetId.trim() ||
|
||||
null;
|
||||
const selectedCandidateId =
|
||||
draft.selectedCandidateId ??
|
||||
primaryLevel?.selectedCandidateId ??
|
||||
selectedCandidate?.candidateId ??
|
||||
null;
|
||||
|
||||
return {
|
||||
...session,
|
||||
draft: {
|
||||
...draft,
|
||||
coverImageSrc,
|
||||
coverAssetId,
|
||||
selectedCandidateId,
|
||||
generationStatus: 'ready',
|
||||
levels: draft.levels?.map((level, index) =>
|
||||
index === 0
|
||||
? {
|
||||
...level,
|
||||
coverImageSrc: level.coverImageSrc ?? coverImageSrc,
|
||||
coverAssetId: level.coverAssetId ?? coverAssetId,
|
||||
selectedCandidateId:
|
||||
level.selectedCandidateId ?? selectedCandidateId,
|
||||
generationStatus: 'ready',
|
||||
}
|
||||
: level,
|
||||
),
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
function hasRecoverableGeneratedPuzzleDraft(
|
||||
session: PuzzleAgentSessionSnapshot,
|
||||
) {
|
||||
const draft = session.draft;
|
||||
if (!draft) {
|
||||
return false;
|
||||
}
|
||||
|
||||
const firstLevel = draft.levels?.[0];
|
||||
return Boolean(
|
||||
draft.coverImageSrc?.trim() ||
|
||||
firstLevel?.coverImageSrc?.trim() ||
|
||||
firstLevel?.candidates.some((candidate) => candidate.imageSrc.trim()),
|
||||
);
|
||||
}
|
||||
|
||||
function resolveProfileWalletBalance(
|
||||
dashboard: { walletBalance?: number | null } | null | undefined,
|
||||
) {
|
||||
|
||||
Reference in New Issue
Block a user