"use client"; import { useState, useEffect, useMemo } from "react"; import CommunityRuleDocument from "../../../components/sections/CommunityRuleDocument"; import type { CommunityRuleDocumentSection } from "../../../components/sections/CommunityRuleDocument/CommunityRuleDocument.types"; import Alert from "../../../components/modals/Alert"; import { useMessages } from "../../../contexts/MessagesContext"; import { parseDocumentSectionsForDisplay } from "../../../../lib/create/buildPublishPayload"; import { readLastPublishedRule } from "../../../../lib/create/lastPublishedRule"; import { useCreateFlowMdUp } from "../../hooks/useCreateFlowMdUp"; import { CreateFlowHeaderLockup } from "../../components/CreateFlowHeaderLockup"; export function CompletedScreen() { const mdUp = useCreateFlowMdUp(); const m = useMessages(); const completed = m.create.completed; const fallbackSections = useMemo( () => [...completed.fallbackDocumentSections] as CommunityRuleDocumentSection[], [completed.fallbackDocumentSections], ); const [toastDismissed, setToastDismissed] = useState(false); const [headerTitle, setHeaderTitle] = useState( () => completed.fallbackTitle, ); const [headerDescription, setHeaderDescription] = useState< string | undefined >(() => completed.fallbackDescription); const [documentSections, setDocumentSections] = useState(fallbackSections); useEffect(() => { const stored = readLastPublishedRule(); if (!stored) return; const parsed = parseDocumentSectionsForDisplay(stored.document); if (parsed.length === 0) return; queueMicrotask(() => { setDocumentSections(parsed); setHeaderTitle(stored.title); const sum = typeof stored.summary === "string" ? stored.summary.trim() : ""; setHeaderDescription(sum.length > 0 ? sum : undefined); }); }, []); const toast = !toastDismissed ? (
setToastDismissed(true)} className="w-full" />
) : null; return ( <>
{toast} ); }