Phase 16C/16D/16E Fix - Correct Onboarding Wizard Step Order and Runtime Transition
This commit is contained in:
parent
908199c802
commit
85404b9c42
@ -2586,11 +2586,14 @@
|
|||||||
projectId: project.projectId,
|
projectId: project.projectId,
|
||||||
documentText: importStructure.documentText || ""
|
documentText: importStructure.documentText || ""
|
||||||
});
|
});
|
||||||
renderFirstRunCharacterCandidates(discovery?.candidates || []);
|
firstRunCharacterCandidatesModel = Array.isArray(discovery?.candidates) ? discovery.candidates : [];
|
||||||
|
setHidden(firstRunCharacterSection, true);
|
||||||
|
setHidden(firstRunCharacterActions, true);
|
||||||
} catch (discoveryError) {
|
} catch (discoveryError) {
|
||||||
console.error("Unable to discover character candidates.", discoveryError);
|
console.error("Unable to discover character candidates.", discoveryError);
|
||||||
renderFirstRunCharacterCandidates([]);
|
firstRunCharacterCandidatesModel = [];
|
||||||
setText(firstRunCharacterStatus, "Character discovery is unavailable.");
|
setHidden(firstRunCharacterSection, true);
|
||||||
|
setHidden(firstRunCharacterActions, true);
|
||||||
}
|
}
|
||||||
setDiagnostics({
|
setDiagnostics({
|
||||||
lastScan: "Success",
|
lastScan: "Success",
|
||||||
@ -2716,17 +2719,7 @@
|
|||||||
setDocumentMessage(response.message || "Manuscript structure imported.");
|
setDocumentMessage(response.message || "Manuscript structure imported.");
|
||||||
window.setTimeout(updateFirstRunButtons, 750);
|
window.setTimeout(updateFirstRunButtons, 750);
|
||||||
} else {
|
} else {
|
||||||
setFirstRunMode(true);
|
await finishFirstRunOnboarding(response.message || "Manuscript structure imported.");
|
||||||
setHidden(firstRunSummary, true);
|
|
||||||
setHidden(firstRunImportActions, true);
|
|
||||||
setHidden(firstRunCharacterSection, false);
|
|
||||||
setHidden(firstRunCharacterActions, false);
|
|
||||||
setHidden(firstRunCreateCharactersButton, true);
|
|
||||||
setHidden(firstRunSkipCharactersButton, true);
|
|
||||||
setHidden(firstRunContinueButton, false);
|
|
||||||
setText(firstRunCharacterStatus, "No likely characters found.");
|
|
||||||
setFirstRunStatus(response.message || "Manuscript structure imported.");
|
|
||||||
setDocumentMessage(response.message || "Manuscript structure imported.");
|
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error("Unable to import manuscript structure.", error);
|
console.error("Unable to import manuscript structure.", error);
|
||||||
@ -2737,7 +2730,7 @@
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const finishFirstRunOnboarding = () => {
|
const finishFirstRunOnboarding = async (message = "") => {
|
||||||
firstRunCharacterStepActive = false;
|
firstRunCharacterStepActive = false;
|
||||||
firstRunCharacterStepActivatedAt = 0;
|
firstRunCharacterStepActivatedAt = 0;
|
||||||
firstRunCharacterCandidatesModel = [];
|
firstRunCharacterCandidatesModel = [];
|
||||||
@ -2748,7 +2741,13 @@
|
|||||||
setFirstRunMode(false);
|
setFirstRunMode(false);
|
||||||
setFirstRunStatus("");
|
setFirstRunStatus("");
|
||||||
setHidden(firstRunCharacterActions, true);
|
setHidden(firstRunCharacterActions, true);
|
||||||
loadRuntimeDocumentAwareness();
|
if (message) {
|
||||||
|
setDocumentMessage(message);
|
||||||
|
}
|
||||||
|
const runtimeLoaded = await loadRuntimeDocumentAwareness();
|
||||||
|
if (message && runtimeLoaded && detectedChapterTitle) {
|
||||||
|
setDocumentMessage(message);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const createFirstRunCharacters = async () => {
|
const createFirstRunCharacters = async () => {
|
||||||
@ -2770,7 +2769,7 @@
|
|||||||
});
|
});
|
||||||
setDocumentMessage(response.message || "Characters created.");
|
setDocumentMessage(response.message || "Characters created.");
|
||||||
setText(firstRunCharacterStatus, `${response.createdCount || 0} created, ${response.skippedCount || 0} already existed.`);
|
setText(firstRunCharacterStatus, `${response.createdCount || 0} created, ${response.skippedCount || 0} already existed.`);
|
||||||
finishFirstRunOnboarding();
|
await finishFirstRunOnboarding(response.message || "Characters created.");
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error("Unable to create discovered characters.", error);
|
console.error("Unable to create discovered characters.", error);
|
||||||
setText(firstRunCharacterStatus, `Unable to create characters: ${errorText(error)}`);
|
setText(firstRunCharacterStatus, `Unable to create characters: ${errorText(error)}`);
|
||||||
@ -2800,6 +2799,14 @@
|
|||||||
heading2: String(structure.heading2Count)
|
heading2: String(structure.heading2Count)
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if (!detectedChapterTitle) {
|
||||||
|
resetPlotDirectorScene("Not detected");
|
||||||
|
setSceneContextStale(false);
|
||||||
|
setSceneTrackingState("Live");
|
||||||
|
setDocumentMessage("Manuscript linked. Click inside a chapter to show the current scene.");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
if (!detectedSceneTitle) {
|
if (!detectedSceneTitle) {
|
||||||
await refreshPlotDirectorChapter();
|
await refreshPlotDirectorChapter();
|
||||||
} else {
|
} else {
|
||||||
@ -4231,8 +4238,8 @@
|
|||||||
firstRunScanButton?.addEventListener("click", analyseFirstRunManuscript);
|
firstRunScanButton?.addEventListener("click", analyseFirstRunManuscript);
|
||||||
firstRunImportButton?.addEventListener("click", importFirstRunManuscript);
|
firstRunImportButton?.addEventListener("click", importFirstRunManuscript);
|
||||||
firstRunCreateCharactersButton?.addEventListener("click", createFirstRunCharacters);
|
firstRunCreateCharactersButton?.addEventListener("click", createFirstRunCharacters);
|
||||||
firstRunSkipCharactersButton?.addEventListener("click", finishFirstRunOnboarding);
|
firstRunSkipCharactersButton?.addEventListener("click", () => finishFirstRunOnboarding("Character creation skipped."));
|
||||||
firstRunContinueButton?.addEventListener("click", finishFirstRunOnboarding);
|
firstRunContinueButton?.addEventListener("click", () => finishFirstRunOnboarding());
|
||||||
firstRunCancelButton?.addEventListener("click", () => setFirstRunMode(false));
|
firstRunCancelButton?.addEventListener("click", () => setFirstRunMode(false));
|
||||||
firstRunImportCancelButton?.addEventListener("click", () => resetFirstRunPreview("Import cancelled."));
|
firstRunImportCancelButton?.addEventListener("click", () => resetFirstRunPreview("Import cancelled."));
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
Loading…
x
Reference in New Issue
Block a user