"use client"; import type { ReactNode } from "react"; import { useRouter } from "next/navigation"; import { CreateFlowProvider, useCreateFlow, saveCreateFlowDraft, } from "./context/CreateFlowContext"; import { useCreateFlowNavigation } from "./hooks/useCreateFlowNavigation"; import CreateFlowTopNav from "../components/utility/CreateFlowTopNav"; import CreateFlowFooter from "../components/utility/CreateFlowFooter"; import Button from "../components/buttons/Button"; /** * Layout for the Create Rule Flow * * Provides a full-screen layout without the root layout's TopNav/Footer. * This layout wraps all create flow pages and provides the CreateFlowContext. * Includes the create flow-specific TopNav and Footer components. */ function CreateFlowLayoutContent({ children }: { children: ReactNode }) { const router = useRouter(); const { currentStep, nextStep, previousStep, goToNextStep, goToPreviousStep, } = useCreateFlowNavigation(); const { state, clearState } = useCreateFlow(); const handleExit = (options?: { saveDraft?: boolean }) => { const saveDraft = options?.saveDraft ?? false; if (!saveDraft && typeof window !== "undefined") { const confirmed = window.confirm( "Leave create flow? Your progress will be lost.", ); if (!confirmed) return; } if (saveDraft) { saveCreateFlowDraft(state); } clearState(); router.push("/"); }; const isCompletedStep = currentStep === "completed"; const isRightRailStep = currentStep === "right-rail"; const useFullHeightMain = isCompletedStep || isRightRailStep; return (
router.push("/create/final-review") : undefined } onExit={handleExit} buttonPalette={isCompletedStep ? "inverse" : undefined} className={ isCompletedStep ? "!bg-[var(--color-teal-teal50,#c9fef9)]" : undefined } />
{children}
{!isCompletedStep && ( {currentStep === "final-review" ? "Finalize CommunityRule" : "Next"} ) : null } onBackClick={previousStep ? goToPreviousStep : undefined} /> )}
); } export default function CreateFlowLayout({ children, }: { children: ReactNode; }) { return ( {children} ); }