'use client'; import { Link } from '@/shared/config/i18n/navigation'; import { Button } from '@/shared/ui/button'; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, } from '@/shared/ui/dropdown-menu'; import { ChangeLang } from './ChangeLang'; import { useLoginModal, useRegisterModal } from '@/shared/zustand/auth'; import { useTranslations } from 'next-intl'; import { useUserPlagiatStore } from '@/shared/zustand/user'; import { ChevronDown, LogOut } from 'lucide-react'; import { useEffect, useState } from 'react'; function AuthButtons() { const t = useTranslations('Navbar'); const [token, setToken] = useState(null); const [localUser, setLocalUser] = useState<{ id: number; name: string; surname: string; } | null>(null); const [open, setOpen] = useState(false); const toggleLoginModal = useLoginModal((state) => state.toggleLoginModal); const toggleRegisterModal = useRegisterModal( (state) => state.toggleRegisterModal, ); const user = useUserPlagiatStore((state) => state.user); const clearUser = useUserPlagiatStore((state) => state.clearUser); const clearTokens = () => { localStorage.removeItem('access_token'); localStorage.removeItem('refresh_token'); localStorage.removeItem('user'); clearUser(); }; useEffect(() => { const token_data = localStorage.getItem('access_token'); setToken(token_data); const data = localStorage.getItem('user'); if (data) { setLocalUser(JSON.parse(data)); } else { setLocalUser(null); } }, [user]); if (localUser && token) { return (
{localUser.name} { clearTokens(); setOpen(false); }} > {t('logout')}
); } return (
); } export { AuthButtons };