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 */}
)
}