import React, { useRef, useState } from 'react'; import Spinner from '../common/Spinner'; import Dropdown from '../common/Dropdown'; import useAccount from '../../hooks/useAccount'; import useClickListener from '../../hooks/useClickListener'; import AuthModal from '../AuthModal'; function NavBarItem() { const [isExpanded, setExpanded] = useState(false); const menuRef = useRef(null); const { isLoggedIn, isAuthenticating, username, userEmail, openAuthModal, logout, authModalOpen, closeAuthModal, handleAuthSuccess, } = useAccount(); useClickListener(menuRef, () => setExpanded(false), true); if (isAuthenticating) { return ( <>
Loading user
); } if (!isLoggedIn) { return ( <> ); } return (
{username} {userEmail &&

{userEmail}

}
{ logout(); setExpanded(false); }} > Logout
); } function CollapsedMenu() { const { isLoggedIn, isAuthenticating, username, openAuthModal, logout, authModalOpen, closeAuthModal, handleAuthSuccess, } = useAccount(); if (isAuthenticating) { return (

Loading...

); } if (!isLoggedIn) { return ( <> ); } return ( <>
account_circle

{username}

); } function SideBarItem({ isCollapsed, onNavigate }) { const [isExpanded, setExpanded] = useState(false); const menuRef = useRef(null); const { isLoggedIn, isAuthenticating, username, userEmail, openAuthModal, logout, authModalOpen, closeAuthModal, handleAuthSuccess, } = useAccount(); useClickListener(menuRef, () => setExpanded(false), true); if (isAuthenticating) { return (
{!isCollapsed && Loading...}
); } if (!isLoggedIn) { return ( <> ); } return (
{isExpanded && !isCollapsed && (
{userEmail && (
mail {userEmail}
)}
)}
); } export default { NavBarItem, CollapsedMenu, SideBarItem };