'use client'; import Link from 'next/link'; import { useEffect, useRef, useState } from 'react'; import { logoutCustomer } from '@/app/account/actions'; type AccountMenuProps = { customer: { name: string | null; email: string } | null; }; export default function AccountMenu({ customer }: AccountMenuProps) { const [mounted, setMounted] = useState(false); const [open, setOpen] = useState(false); const [showLogoutConfirm, setShowLogoutConfirm] = useState(false); const ref = useRef(null); useEffect(() => { setMounted(true); }, []); useEffect(() => { const onClickOutside = (e: MouseEvent) => { if (ref.current && !ref.current.contains(e.target as Node)) { setOpen(false); setShowLogoutConfirm(false); } }; document.addEventListener('mousedown', onClickOutside); return () => document.removeEventListener('mousedown', onClickOutside); }, []); if (!customer) { return ( Login ); } if (!mounted) return null; return (
{open && (
setOpen(false)} className="block px-4 py-3 text-sm hover:bg-surface"> My account
)} {mounted && showLogoutConfirm && (

Log out?

Your cart will be saved. You'll need to log in again to complete your order.

)}
); }