"use client"; import type { Product } from "@/lib/types"; import { useState } from "react"; import type { ProductModalProps } from "./Manager.types"; export default function ProductModal({ product, categories, onSave, onClose, }: ProductModalProps) { const isEdit = product !== null; const [form, setForm] = useState>({ name: product?.name ?? "", category: product?.category ?? categories[0]?.id ?? "", price: product?.price ?? 0, image: product?.image ?? "/imgs/products/placeholder.jpg", description: product?.description ?? "", available: product?.available ?? true, }); const handleSubmit = (e: React.FormEvent) => { e.preventDefault(); if (isEdit && product) { onSave({ ...form, id: product.id }); } else { onSave(form); } }; const inputCls = "text-foreground w-full rounded-xl border border-(--color-border) bg-white px-3 py-2 text-sm transition outline-none focus:border-(--color-primary) focus:ring-2 focus:ring-(--color-primary)/20"; return (
e.target === e.currentTarget && onClose()} >

{isEdit ? "Chỉnh sửa món" : "Thêm món mới"}

setForm({ ...form, name: e.target.value })} className={inputCls} placeholder="Ví dụ: Cà Phê Đen" />
setForm({ ...form, price: Number(e.target.value) }) } className={inputCls} placeholder="25000" />