'use client'; import { useEffect, useRef, useState } from 'react'; import { ChevronDown, LogOut, Settings, UserRound } from 'lucide-react'; import { apiUrl, BUSINESS_URL, CUSTOMER_URL } from '../lib/meshkee-api'; function readCookie(name) { const entries = Object.fromEntries(document.cookie.split(';').flatMap((part) => { const index=part.indexOf('='); return index<0?[]:[[part.slice(0,index).trim(),part.slice(index+1)]]; })); if (entries[name]) return decodeURIComponent(entries[name]); const count = Number(entries[`${name}_n`]); if (!Number.isFinite(count) || count < 1) return ''; return decodeURIComponent(Array.from({length:count},(_,index)=>entries[`${name}_${index}`]||'').join('')); } export default function AccountMenu() { const [user,setUser]=useState(null); const [open,setOpen]=useState(false); const root=useRef(null); useEffect(()=>{const token=readCookie('meshkee_customer_access_token');if(!token)return;fetch(apiUrl('/auth/me'),{headers:{Authorization:`Bearer ${token}`,Accept:'application/json'}}).then(response=>response.ok?response.json():null).then(data=>setUser(data?.user||null)).catch(()=>{});},[]); useEffect(()=>{if(!open)return;const close=(event)=>{if(!root.current?.contains(event.target))setOpen(false)};document.addEventListener('pointerdown',close);return()=>document.removeEventListener('pointerdown',close)},[open]); const name=user?.firstName||user?.name||user?.displayName; const roles=[user?.role,...(Array.isArray(user?.roles)?user.roles:[])].filter(Boolean).map(String); const admin=Boolean(user?.isAdmin||roles.some(role=>/admin|owner|manager/i.test(role))); if(!user)return ; return
{open&&
پروفایل من{admin&&مدیریت وب‌سایت}خروج
}
; }