"use client"; import { useState, useTransition } from "react"; import { Button } from "@/components/ui/button"; import { Dialog, DialogContent, DialogFooter, DialogHeader, DialogTitle, } from "@/components/ui/dialog"; import { Input } from "@/components/ui/input"; import { Label } from "@/components/ui/label"; import { Select, SelectContent, SelectGroup, SelectItem, SelectTrigger, SelectValue, } from "@/components/ui/select"; import { createCalendar } from "@/modules/calendar/server/actions"; const DEFAULT_COLOR = "#B85C3C"; const VISIBILITY_ITEMS = [ { label: "Household", value: "household" }, { label: "Private", value: "private" }, ]; type Props = { open: boolean; onOpenChange: (open: boolean) => void; }; export function CalendarCreateDialog({ open, onOpenChange }: Props) { return ( {open ? onOpenChange(false)} /> : null} ); } function CalendarCreateForm({ onDone }: { onDone: () => void }) { const [name, setName] = useState(""); const [color, setColor] = useState(DEFAULT_COLOR); const [visibility, setVisibility] = useState<"private" | "household">("household"); const [isPending, startTransition] = useTransition(); function handleSubmit(e: React.FormEvent) { e.preventDefault(); if (!name.trim()) return; startTransition(async () => { await createCalendar({ name: name.trim(), color, visibility }); onDone(); }); } return ( <> New calendar
setName(e.target.value)} required />
setColor(e.target.value)} />
); }