"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 (
);
}
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 (
<>