"use client" import { useState } from "react" import { useRouter } from "next/navigation" import { useForm } from "react-hook-form" import { zodResolver } from "@hookform/resolvers/zod" import * as z from "zod" import { Button } from "@/components/ui/button" import { Input } from "@/components/ui/input" import { Textarea } from "@/components/ui/textarea" import { Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, } from "@/components/ui/form" import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card" import { toast } from "sonner" import { Loader2 } from "lucide-react" import { updateSiteSettings } from "@/app/(dashboard)/dashboard/settings/actions" const settingsSchema = z.object({ site_title: z.string().min(2, "Site başlığı en az 2 karakter olmalıdır."), site_description: z.string(), contact_email: z.literal("").or(z.string().email("Geçerli bir e-posta adresi giriniz.")), contact_phone: z.string(), currency: z.string(), }) type SettingsFormValues = z.infer interface SiteSettingsFormProps { initialData: any } export function SiteSettingsForm({ initialData }: SiteSettingsFormProps) { const router = useRouter() const [loading, setLoading] = useState(false) const form = useForm({ resolver: zodResolver(settingsSchema), defaultValues: { site_title: initialData?.site_title || "ParaKasa", site_description: initialData?.site_description || "", contact_email: initialData?.contact_email || "", contact_phone: initialData?.contact_phone || "", currency: initialData?.currency || "TRY", }, }) const onSubmit = async (data: SettingsFormValues) => { setLoading(true) try { // @ts-ignore const result = await updateSiteSettings(data) if (result.error) { toast.error(result.error) return } toast.success("Site ayarları güncellendi.") router.refresh() } catch (error) { toast.error("Bir sorun oluştu.") } finally { setLoading(false) } } return ( Genel Ayarlar Web sitesinin genel yapılandırma ayarları.
( Site Başlığı Tarayıcı sekmesinde görünen ad. )} /> ( Site Açıklaması