"use client"; import { useEffect, useState } from "react"; import { createClient } from "@/lib/supabase/browser.js"; export default function LogoutButton() { const [visible, setVisible] = useState(false); const [error, setError] = useState(""); const [loggingOut, setLoggingOut] = useState(false); useEffect(() => { const client = createClient(); async function checkSession() { const { data: { session } } = await client.auth.getSession(); setVisible(!!session); } checkSession(); const { data: { subscription } } = client.auth.onAuthStateChange((_event, session) => { setVisible(!!session); }); return () => subscription.unsubscribe(); }, []); async function handleLogout() { setLoggingOut(true); setError(""); try { const client = createClient(); await client.auth.signOut(); window.location.href = "/login"; } catch (err) { setError("Could not logout. Try again."); setLoggingOut(false); } } if (!visible) return null; return (
{error}
)}