'use client' import { Service } from "@/types/cms" 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 { ImageUpload } from "@/components/ui/image-upload" import { useState } from "react" import { createService, updateService } from "./actions" import { toast } from "sonner" import { Switch } from "@/components/ui/switch" import { Loader2 } from "lucide-react" interface ServiceFormProps { service?: Service afterSave: () => void } export function ServiceForm({ service, afterSave }: ServiceFormProps) { const [loading, setLoading] = useState(false) const [title, setTitle] = useState(service?.title || "") const [description, setDescription] = useState(service?.description || "") const [imageUrl, setImageUrl] = useState(service?.image_url || "") const [order, setOrder] = useState(service?.order.toString() || "0") const [isActive, setIsActive] = useState(service?.is_active ?? true) const onSubmit = async (e: React.FormEvent) => { e.preventDefault() setLoading(true) const formData = new FormData() formData.append('title', title) formData.append('description', description) formData.append('image_url', imageUrl) formData.append('order', order) formData.append('is_active', String(isActive)) try { const result = service ? await updateService(service.id, formData) : await createService(formData) if (result.success) { toast.success(service ? "Hizmet güncellendi" : "Hizmet oluşturuldu") afterSave() } else { toast.error(result.error) } } catch { toast.error("Bir hata oluştu") } finally { setLoading(false) } } return (
) }