"use client"; import { useState } from "react"; import Link from "next/link"; import { useRouter } from "next/navigation"; import { signOut, useSession } from "next-auth/react"; import { acceptTermsAction } from "@/features/auth/actions"; export function AcceptTermsForm() { const router = useRouter(); const { update } = useSession(); const [checked, setChecked] = useState(false); const [error, setError] = useState(""); const [loading, setLoading] = useState(false); async function handleAccept() { setError(""); setLoading(true); const result = await acceptTermsAction({ accepted: checked }); if (result.error) { setError(result.error); setLoading(false); return; } // Refresh JWT supaya middleware lihat acceptedTermsAndPrivacy=true. // Kalau update() gagal (network), JWT callback di server akan re-fetch // DB pada request berikutnya karena cookie token masih `false`. try { await update(); } catch { setError( "Persetujuan tersimpan, tapi sesi belum ter-refresh. Coba refresh halaman atau klik lagi." ); setLoading(false); return; } router.replace("/"); router.refresh(); } return (