import { useState } from "react"; import { Button } from "@/components/ui/button"; import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, } from "@/components/ui/dialog"; import { Input } from "@/components/ui/input"; import { Label } from "@/components/ui/label"; import { Textarea } from "@/components/ui/textarea"; import { Checkbox } from "@/components/ui/checkbox"; interface ProjectDialogProps { open: boolean; onOpenChange: (open: boolean) => void; onSubmit: (data: { name: string; description: string; isPublic: boolean; }) => void; onDelete?: () => void; initialData?: { name: string; description: string; isPublic?: boolean; }; isEditing?: boolean; } export function ProjectDialog({ open, onOpenChange, onSubmit, onDelete, initialData, isEditing = false, }: ProjectDialogProps) { const [name, setName] = useState(initialData?.name || ""); const [description, setDescription] = useState(initialData?.description || ""); const [isPublic, setIsPublic] = useState(initialData?.isPublic || false); const handleSubmit = (e: React.FormEvent) => { e.preventDefault(); onSubmit({ name, description, isPublic, }); onOpenChange(false); // Reset form if (!isEditing) { setName(""); setDescription(""); } }; const handleOpenChange = (open: boolean) => { onOpenChange(open); if (!open && !isEditing) { // Reset form when closing dialog in create mode setName(""); setDescription(""); } }; return (
{isEditing ? "Edit Project" : "Create Project"} {isEditing ? "Update your project details." : "Create a new project to organize your tasks." }
setName(e.target.value)} placeholder="Enter project name" required />