"use client" import { useState } from "react" import { Plus } from "lucide-react" import { useFormStatus } from "react-dom" import { Button } from "@/shared/components/ui/button" import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, } from "@/shared/components/ui/dialog" import { Input } from "@/shared/components/ui/input" import { Label } from "@/shared/components/ui/label" import { createChapterAction } from "../actions" import { toast } from "sonner" function SubmitButton() { const { pending } = useFormStatus() return ( ) } interface CreateChapterDialogProps { textbookId: string parentId?: string trigger?: React.ReactNode | null open?: boolean onOpenChange?: (open: boolean) => void } export function CreateChapterDialog({ textbookId, parentId, trigger, open: controlledOpen, onOpenChange }: CreateChapterDialogProps) { const [uncontrolledOpen, setUncontrolledOpen] = useState(false) const open = controlledOpen ?? uncontrolledOpen const setOpen = onOpenChange ?? setUncontrolledOpen const handleSubmit = async (formData: FormData) => { const result = await createChapterAction(textbookId, parentId, null, formData) if (result.success) { toast.success(result.message) setOpen(false) } else { toast.error(result.message) } } const triggerNode = trigger === null ? null : trigger || ( ) return ( {triggerNode ? {triggerNode} : null} Add New Chapter Create a new chapter or section.
) }