"use client"; import React from "react" import { useEffect, useState } from "react"; import { Dialog, DialogContent, DialogHeader, DialogTitle, } from "@/components/ui/dialog"; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import { Label } from "@/components/ui/label"; import { Textarea } from "@/components/ui/textarea"; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "@/components/ui/select"; import type { Product } from "@/lib/types"; interface ProductDialogProps { open: boolean; onOpenChange: (open: boolean) => void; product: Product | null; onSave: (data: Partial) => Promise; } export function ProductDialog({ open, onOpenChange, product, onSave, }: ProductDialogProps) { const [loading, setLoading] = useState(false); const [form, setForm] = useState({ name: "", sku: "", description: "", version: "1.0", status: "draft", }); useEffect(() => { if (product) { setForm({ name: product.name || "", sku: product.sku || "", description: product.description || "", version: product.version || "1.0", status: product.status || "draft", }); } else { setForm({ name: "", sku: "", description: "", version: "1.0", status: "draft", }); } }, [product, open]); async function handleSubmit(e: React.FormEvent) { e.preventDefault(); setLoading(true); try { await onSave(form); onOpenChange(false); } finally { setLoading(false); } } return ( {product ? "Edit Product" : "Add New Product"}
setForm({ ...form, name: e.target.value })} placeholder="e.g. Sensor Board v2" required />
setForm({ ...form, sku: e.target.value })} placeholder="e.g. SB-V2-001" className="font-mono" required />