"use client"; import React, { useState, useTransition } from "react"; import { useRouter } from "next/navigation"; import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card"; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import { Textarea } from "@/components/ui/textarea"; import { Label } from "@/components/ui/label"; import { toast } from "sonner"; import { updateForm } from "@/app/admin/form/actions"; import { Loader2, Save } from "lucide-react"; interface FormExtraClientProps { form: { id: string; discordWebhookUrl: string | null; discordWebhookTemplate: string | null; discordWebhookUpdateTemplate: string | null; }; } export default function FormExtraClient({ form }: FormExtraClientProps) { const router = useRouter(); const [webhookUrl, setWebhookUrl] = useState(form.discordWebhookUrl || ""); const [webhookTemplate, setWebhookTemplate] = useState(form.discordWebhookTemplate || ""); const [webhookUpdateTemplate, setWebhookUpdateTemplate] = useState(form.discordWebhookUpdateTemplate || ""); const [isSaving, startSaveTransition] = useTransition(); const handleSave = () => { startSaveTransition(async () => { try { await updateForm(form.id, { discordWebhookUrl: webhookUrl.trim() || null, discordWebhookTemplate: webhookTemplate.trim() || null, discordWebhookUpdateTemplate: webhookUpdateTemplate.trim() || null, }); toast.success("Extra settings saved!"); router.refresh(); } catch (err: any) { toast.error(err.message || "Failed to update settings."); } }); }; return (