"use client" import type React from "react" import { useState } from "react" 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 { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, } from "@/components/ui/dialog" import type { Product } from "@/types/business" interface ProductFormProps { product?: Product open: boolean onOpenChange: (open: boolean) => void onSubmit: (product: Omit) => void } const categories = [ "Electronics", "Audio", "Accessories", "Mobile", "Computing", "Gaming", "Home & Garden", "Sports", "Other", ] export function ProductForm({ product, open, onOpenChange, onSubmit }: ProductFormProps) { const [formData, setFormData] = useState({ name: product?.name || "", category: product?.category || "", description: product?.description || "", buyPrice: product?.buyPrice || 0, sellPrice: product?.sellPrice || 0, stock: product?.stock || 0, minStock: product?.minStock || 5, supplier: product?.supplier || "", sku: product?.sku || "", }) const handleSubmit = (e: React.FormEvent) => { e.preventDefault() onSubmit(formData) onOpenChange(false) // Reset form if it's a new product if (!product) { setFormData({ name: "", category: "", description: "", buyPrice: 0, sellPrice: 0, stock: 0, minStock: 5, supplier: "", sku: "", }) } } const profitMargin = formData.sellPrice > 0 && formData.buyPrice > 0 ? (((formData.sellPrice - formData.buyPrice) / formData.sellPrice) * 100).toFixed(1) : "0" return ( {product ? "Edit Product" : "Add New Product"} {product ? "Update product information" : "Enter the details for the new product"}
setFormData({ ...formData, name: e.target.value })} placeholder="Enter product name" required />
setFormData({ ...formData, sku: e.target.value })} placeholder="Product SKU" />
setFormData({ ...formData, supplier: e.target.value })} placeholder="Supplier name" />