diff --git a/app/create/cards/page.tsx b/app/create/cards/page.tsx index 00fd170..80ad3db 100644 --- a/app/create/cards/page.tsx +++ b/app/create/cards/page.tsx @@ -85,9 +85,15 @@ function AddPlatformModalContent({ const m = useMessages(); const comm = m.create.communication; const modal = comm.modals[platformCardId as keyof typeof comm.modals]; - if (!modal || !("sections" in modal)) return null; + const defaults = + modal && "sections" in modal + ? modal.sections + : { + corePrinciple: "", + logisticsAdmin: "", + codeOfConduct: "", + }; - const defaults = modal.sections; const [sectionValues, setSectionValues] = useState< Record >(() => ({ @@ -104,6 +110,8 @@ function AddPlatformModalContent({ [markCreateFlowInteraction], ); + if (!modal || !("sections" in modal)) return null; + return (
{SECTION_FIELDS.map((field) => ( @@ -147,7 +155,7 @@ export default function CardsPage() { recommended: true, }; }), - [comm.cards], + [comm], ); const title = expanded ? comm.page.expandedTitle : comm.page.compactTitle; diff --git a/app/create/completed/page.tsx b/app/create/completed/page.tsx index 1c2e955..599fb3c 100644 --- a/app/create/completed/page.tsx +++ b/app/create/completed/page.tsx @@ -40,11 +40,14 @@ export default function CompletedPage() { if (!stored) return; const parsed = parseDocumentSectionsForDisplay(stored.document); if (parsed.length === 0) return; - setDocumentSections(parsed); - setHeaderTitle(stored.title); - const sum = - typeof stored.summary === "string" ? stored.summary.trim() : ""; - setHeaderDescription(sum.length > 0 ? sum : undefined); + // One-shot hydration from client-only storage after mount. + queueMicrotask(() => { + setDocumentSections(parsed); + setHeaderTitle(stored.title); + const sum = + typeof stored.summary === "string" ? stored.summary.trim() : ""; + setHeaderDescription(sum.length > 0 ? sum : undefined); + }); }, []); const toast = !toastDismissed ? ( diff --git a/tests/components/FinalReviewPage.test.tsx b/tests/components/FinalReviewPage.test.tsx index 4906f9c..e30fe39 100644 --- a/tests/components/FinalReviewPage.test.tsx +++ b/tests/components/FinalReviewPage.test.tsx @@ -33,7 +33,7 @@ describe("FinalReviewPage", () => { expect(screen.getByRole("heading", { level: 1 })).toBeInTheDocument(); }); - it("renders HeaderLockup with expected title", () => { + it("renders lockup title", () => { render(); expect( screen.getByRole("heading", { @@ -42,7 +42,7 @@ describe("FinalReviewPage", () => { ).toBeInTheDocument(); }); - it("renders HeaderLockup with expected description", () => { + it("renders lockup description", () => { render(); expect( screen.getByText(