import classNames from 'classnames' import { Link, NavLink } from 'react-router-dom' import { logout } from '~/utils/auth' import Transition from '../Transition' import IVAvatar from '../IVAvatar' import useDashboard from '../DashboardContext' import IconCancel from '~/icons/compiled/Cancel' import IconSettings from '~/icons/compiled/Settings' import { useOrgParams } from '~/utils/organization' import { useState } from 'react' import { getNavHref } from '~/utils/navigation' import { ActionGroupWithPossibleMetadata, ActionMode } from '~/utils/types' import { getTopLevelGroups } from '.' import MobileEnvSwitcher from '../Sidebar/OrgSwitcher' interface MobileMenuProps { isOpen: boolean onClose: () => void groups?: ActionGroupWithPossibleMetadata[] mode: ActionMode } function Backdrop(props: MobileMenuProps) { return (
) } function CloseButton(props: MobileMenuProps) { return (
) } export default function MobileNav(props: MobileMenuProps) { const { isOpen, onClose } = props const { orgEnvSlug, basePath } = useOrgParams() const [isSwitcherVisible, setIsSwitcherVisible] = useState(false) const { me } = useDashboard() const topLevelGroups = getTopLevelGroups(props.groups) const navLinkClassName = ({ isActive, className, }: { isActive: boolean className?: string }) => { return classNames( 'text-base cursor-pointer flex items-center focus:outline-none font-medium px-4 py-2.5 rounded-md', className, { 'bg-opacity-50 text-primary-400 border-none': isActive, 'text-gray-900 hover:text-opacity-60 border-none': !isActive, } ) } return (
{/* TODO: the "in" transition doesn't work here, can't figure out why. */}
{me?.firstName} {me?.lastName}
{me?.email}
{/* Force sidebar to shrink to fit close icon */}
) }