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 (
);
}
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 };