This commit is contained in:
2026-05-05 14:40:41 +08:00
parent e847fcea6f
commit 07e777fef8
76 changed files with 4246 additions and 444 deletions

View File

@@ -659,15 +659,12 @@ function buildPuzzleResultProfileId(sessionId: string | null | undefined) {
function buildPuzzleCompileActionFromFormPayload(
payload: CreatePuzzleAgentSessionRequest | null,
): PuzzleAgentActionRequest {
const workTitle = payload?.workTitle?.trim() || payload?.seedText?.trim();
const workDescription = payload?.workDescription?.trim();
const pictureDescription = payload?.pictureDescription?.trim();
const pictureDescription =
payload?.pictureDescription?.trim() || payload?.seedText?.trim();
return {
action: 'compile_puzzle_draft',
promptText: pictureDescription || workTitle,
...(workTitle ? { workTitle } : {}),
...(workDescription ? { workDescription } : {}),
promptText: pictureDescription,
...(pictureDescription ? { pictureDescription } : {}),
referenceImageSrc: payload?.referenceImageSrc || null,
imageModel: payload?.imageModel ?? null,
@@ -679,28 +676,15 @@ function buildPuzzleFormPayloadFromSession(
session: PuzzleAgentSessionSnapshot,
): CreatePuzzleAgentSessionRequest {
const formDraft = session.draft?.formDraft;
const workTitle =
formDraft?.workTitle?.trim() ||
session.draft?.workTitle?.trim() ||
session.draft?.levelName?.trim() ||
session.anchorPack.themePromise.value.trim() ||
session.seedText?.trim() ||
'';
const workDescription =
formDraft?.workDescription?.trim() ||
session.draft?.workDescription?.trim() ||
session.draft?.summary?.trim() ||
'';
const pictureDescription =
formDraft?.pictureDescription?.trim() ||
session.draft?.levels?.[0]?.pictureDescription?.trim() ||
session.anchorPack.visualSubject.value.trim() ||
session.seedText?.trim() ||
'';
return {
seedText: workTitle,
workTitle,
workDescription,
seedText: pictureDescription,
pictureDescription,
referenceImageSrc: null,
imageModel: null,
@@ -723,9 +707,9 @@ function buildPuzzleFormPayloadFromAction(
payload.pictureDescription?.trim() || payload.promptText?.trim() || '';
return {
seedText: workTitle,
workTitle,
workDescription,
seedText: pictureDescription,
...(workTitle ? { workTitle } : {}),
...(workDescription ? { workDescription } : {}),
pictureDescription,
referenceImageSrc:
payload.action === 'compile_puzzle_draft'
@@ -920,6 +904,10 @@ export function PlatformEntryFlowShellImpl({
initialPublicWorkCode,
}: PlatformEntryFlowShellProps) {
const authUi = useAuthUi();
const platformThemeClass =
authUi?.platformTheme === 'dark'
? 'platform-theme--dark'
: 'platform-theme--light';
const [showCreationTypeModal, setShowCreationTypeModal] = useState(false);
const [selectedDetailEntry, setSelectedDetailEntry] =
useState<CustomWorldLibraryEntry<CustomWorldProfile> | null>(null);
@@ -1662,7 +1650,10 @@ export function PlatformEntryFlowShellImpl({
setPuzzleFormDraftPayload(formPayload);
}
if (payload.action === 'publish_puzzle_work') {
if (
payload.action === 'publish_puzzle_work' ||
payload.action === 'generate_puzzle_tags'
) {
await Promise.allSettled([
refreshPuzzleShelf(),
refreshPuzzleGallery(),
@@ -1836,8 +1827,6 @@ export function PlatformEntryFlowShellImpl({
const response = await executePuzzleAgentAction(session.sessionId, {
action: 'save_puzzle_form_draft',
promptText: payload.pictureDescription ?? null,
workTitle: payload.workTitle ?? payload.seedText ?? '',
workDescription: payload.workDescription ?? '',
pictureDescription: payload.pictureDescription ?? '',
imageModel: payload.imageModel ?? null,
});
@@ -5057,9 +5046,7 @@ export function PlatformEntryFlowShellImpl({
}
isBusy={isPuzzleBusy}
error={puzzleError}
onBack={() => {
setSelectionStage('puzzle-agent-workspace');
}}
onBack={leavePuzzleFlow}
onExecuteAction={(payload) => {
void executePuzzleAction(payload);
}}
@@ -5463,6 +5450,8 @@ export function PlatformEntryFlowShellImpl({
closeDisabled={Boolean(deletingCreationWorkId)}
closeOnBackdrop={!deletingCreationWorkId}
size="sm"
overlayClassName={`platform-theme ${platformThemeClass} !items-center`}
panelClassName="platform-remap-surface rounded-[1.75rem]"
footer={
<>
<button