"use client"; import { Button } from "@openstatus/ui/components/ui/button"; import { useState } from "react"; import { FormCard, FormCardGroup } from "@/components/forms/form-card"; import { FormSheetContent, FormSheetDescription, FormSheetFooter, FormSheetHeader, FormSheetTitle, FormSheetTrigger, FormSheetWithDirtyProtection, } from "@/components/forms/form-sheet"; import { FormSubscriber, type SubmitPayload, type SubscriberFormValues, } from "@/components/forms/subscriber/form"; import type { CheckboxTreeItem } from "@/components/ui/checkbox-tree"; type FormSheetSubscriberProps = { children?: React.ReactNode; defaultValues?: Partial; items: CheckboxTreeItem[]; onSubmit: (values: SubmitPayload) => Promise; editMode?: boolean; title?: string; description?: string; open?: boolean; onOpenChange?: (open: boolean) => void; triggerProps?: Omit< React.ComponentProps, "onSubmit" | "asChild" >; }; export function FormSheetSubscriber({ children, defaultValues, onSubmit, items, editMode = false, title = "Add subscriber", description = "Add an email or webhook subscriber. Partner starts receiving notifications immediately - no verification required.", open: controlledOpen, onOpenChange, triggerProps, }: FormSheetSubscriberProps) { const [internalOpen, setInternalOpen] = useState(false); const open = controlledOpen ?? internalOpen; const setOpen = onOpenChange ?? setInternalOpen; return ( {children ? ( {children} ) : null} {title} {description} { await onSubmit(values); setOpen(false); }} defaultValues={defaultValues} id="subscriber-form" className="my-4" /> ); }