/* eslint-disable jsx-a11y/click-events-have-key-events */ /* eslint-disable jsx-a11y/no-noninteractive-tabindex */ /* eslint-disable jsx-a11y/no-static-element-interactions */ import { useEffect, useState } from 'react' import Link from 'next/link' import dynamic from 'next/dynamic' import { useRouter } from 'next/router' import { redirectTo } from '@utils/Tools' import Fetch from '@utils/Fetch' import { User, UserCache } from '@types' const DiscordAvatar = dynamic(() => import('@components/DiscordAvatar')) const Navbar: React.FC = ({ token, pwa }) => { const [userCache, setUserCache] = useState() const [navbarOpen, setNavbarOpen] = useState(false) const [dropdownOpen, setDropdownOpen] = useState(false) const router = useRouter() const logged = userCache?.id && userCache.version === 2 const dev = router.pathname.startsWith('/developers') useEffect(() => { try { if(localStorage.userCache) { setUserCache(token ? JSON.parse(localStorage.userCache) : null) } Fetch('/users/@me').then(data => { if(data.code !== 200) return setUserCache(JSON.parse(localStorage.userCache = JSON.stringify({ id: data.data.id, username: data.data.username, tag: data.data.tag, version: 2 }))) }) } catch { setUserCache(null) } }, [ token ]) return ( <>
) } interface NavbarProps { token: string pwa: boolean } export default Navbar