import type { Metadata } from "next"; import { Save } from "lucide-react"; import { Field, FormActions, FormShell, PageHeader, PrimaryButton, Textarea, } from "@/components/admin/form"; import { getSiteSettings } from "@/lib/data"; import { saveSiteSettings } from "@/lib/admin-actions"; import type { FaqItem, ProcessStep, StatItem, TrustItem, WhyUsItem, } from "@/lib/types"; export const metadata: Metadata = { title: "Site Ayarları" }; function statsToText(items?: string[] | null): string { if (!items) return ""; const parsed: StatItem[] = []; for (const raw of items) { try { const obj = JSON.parse(raw) as Partial; if (obj.value && obj.label) parsed.push({ value: obj.value, label: obj.label }); } catch { /* ignore */ } } return parsed.map((s) => `${s.value} | ${s.label}`).join("\n"); } function trustToText(items?: string[] | null): string { if (!items) return ""; const parsed: TrustItem[] = []; for (const raw of items) { try { const obj = JSON.parse(raw) as Partial; if (obj.value && obj.label) parsed.push({ icon: obj.icon ?? "Sparkles", value: obj.value, label: obj.label, }); } catch { /* ignore */ } } return parsed.map((t) => `${t.icon} | ${t.value} | ${t.label}`).join("\n"); } function whyUsToText(items?: string[] | null): string { if (!items) return ""; const parsed: WhyUsItem[] = []; for (const raw of items) { try { const obj = JSON.parse(raw) as Partial; if (obj.title && obj.description) parsed.push({ icon: obj.icon ?? "Sparkles", title: obj.title, description: obj.description, }); } catch { /* ignore */ } } return parsed .map((w) => `${w.icon} | ${w.title}\n${w.description}`) .join("\n---\n"); } function processToText(items?: string[] | null): string { if (!items) return ""; const parsed: ProcessStep[] = []; for (const raw of items) { try { const obj = JSON.parse(raw) as Partial; if (obj.title && obj.description) parsed.push({ title: obj.title, description: obj.description }); } catch { /* ignore */ } } return parsed.map((p) => `${p.title}\n${p.description}`).join("\n---\n"); } function faqToText(items?: string[] | null): string { if (!items) return ""; const parsed: FaqItem[] = []; for (const raw of items) { try { const obj = JSON.parse(raw) as Partial; if (obj.q && obj.a) parsed.push({ q: obj.q, a: obj.a }); } catch { /* ignore */ } } return parsed.map((it) => `${it.q}\n${it.a}`).join("\n---\n"); } function Section({ title, description, children, }: { title: string; description?: string; children: React.ReactNode; }) { return (

{title}

{description && (

{description}

)}
{children}
); } export default async function SiteSettingsPage() { const s = await getSiteSettings(); return (