import { Fragment } from 'react'; import { AcmeSml, AcmeLrg, Settings } from '../../../assets/icons'; import { app as $appContent } from '../../../content'; import { clsm } from '../../../utils'; import { navPageData } from './utils'; import { useUser } from '../../../contexts/User'; import Button from '../../../components/Button'; import Tooltip from '../../../components/Tooltip'; import useCurrentPage from '../../../hooks/useCurrentPage'; import ProfileMenu from '../../../components/ProfileMenu'; const $content = $appContent.navbar; const Sidebar = () => { const { userData, isSessionValid } = useUser(); const { avatar: avatarName, avatarSrc } = userData || {}; const currentPage = useCurrentPage(); const hasAvatar = !!avatarSrc; const renderWithTooltip = (component, message) => isSessionValid ? ( {component} ) : ( component ); return ( {isSessionValid ? ( ) : ( )} {navPageData.map( ({ pageName, displayName, icon, route, isAuth }, i) => { const isActive = pageName === currentPage; const isVisible = isAuth ? isSessionValid : true; return ( isVisible && ( {renderWithTooltip( svg]:fill-darkMode-blue' ] : [ 'text-black', 'dark:text-white', 'dark:[&>svg]:fill-white', '[&>svg]:fill-black' ] )} > {icon} {!isSessionValid && {displayName}} , displayName )} {isSessionValid && i === 1 && ( )} ) ); } )} {isSessionValid ? ( , to: '/settings' } ]} > {({ isOpen, toggle, toggleRef }) => ( toggle()} variant="icon" ref={toggleRef} > {hasAvatar && ( )} )} ) : ( a]:w-full', '[&>a]:flex-1' ])} > {$content.log_in} {$content.sign_up} )} ); }; export default Sidebar;