"use client" import { useState } from "react"; import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogTrigger } from "@/components/ui/dialog"; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import { useToast } from "@/hooks/use-toast"; import { createCategory, updateCategory } from "@/app/actions/categories"; interface CategoryFormProps { category?: { id: string; nameEn: string; nameAr: string; slug: string; icon?: string; }; mode?: "create" | "edit"; } export default function CategoryForm({ category, mode = "create" }: CategoryFormProps) { const [open, setOpen] = useState(false); const [loading, setLoading] = useState(false); const { toast } = useToast(); const onSubmit = async (e: React.FormEvent) => { e.preventDefault(); setLoading(true); try { const formData = new FormData(e.currentTarget); if (mode === "create") { await createCategory({ nameEn: formData.get("nameEn") as string, nameAr: formData.get("nameAr") as string, slug: formData.get("slug") as string, icon: formData.get("icon") as string, }); toast({ title: "Категория создана", description: "Новая категория успешно добавлена", }); } else { await updateCategory(category!.id, { nameEn: formData.get("nameEn") as string, nameAr: formData.get("nameAr") as string, slug: formData.get("slug") as string, icon: formData.get("icon") as string, }); toast({ title: "Категория обновлена", description: "Изменения успешно сохранены", }); } setOpen(false); } catch (error) { toast({ title: "Ошибка", description: "Что-то пошло не так", variant: "destructive", }); } finally { setLoading(false); } }; return ( {mode === "create" ? "Новая категория" : "Редактировать категорию"}
); }