import classNames from 'classnames' import { Link } from 'react-router-dom' import { MenuButton, Menu, useMenuState, MenuItem as ReakitMenuItem, } from 'reakit' import SettingsIcon from '~/icons/compiled/Settings' import useDashboard from '../DashboardContext' import Transition from '../Transition' import { dropdownMenuClassNames } from '~/components/DropdownMenu' import { logout } from '~/utils/auth' import useControlPanelNav, { ControlPanelMenuItem } from './useControlPanelNav' import IVAvatar from '../IVAvatar' import { logger } from '~/utils/logger' function MenuItem({ menu, isCurrentPage, path, name, onClick, spaceAbove, }: { menu: ReturnType path?: string name: string isCurrentPage?: boolean spaceAbove?: boolean onClick?: () => void }) { const baseClassName = classNames( 'group flex items-center w-full py-1 text-gray-600 hover:text-opacity-60 focus:text-opacity-60 text-left focus:outline-none', { 'mt-4': spaceAbove, } ) if (path?.endsWith('/logout')) { return ( { logout() .then(() => window.location.assign('/')) .catch(error => { logger.error('Error logging user out', { error }) }) }} > {name} ) } if (onClick) { return ( {name} ) } return ( menu.hide()} > {name} ) } function MenuGroup({ title, items, menu, }: { title: string items: ControlPanelMenuItem[] menu: ReturnType }) { return (

{title}

{items.map(item => ( ))}
) } function Footer() { return ( <> Documentation
Visit the Interval docs ›
) } export default function ControlPanel() { const { me } = useDashboard() const menu = useMenuState({ animated: 250, modal: true, gutter: 4, placement: 'bottom-end', }) const { orgNav, actionsNav, userNav } = useControlPanelNav() return (
e.stopPropagation()} className="bg-white shadow-dropdown rounded-lg border border-[#D9DEEF] focus:outline-none text-[13px] overflow-hidden" >
{me?.firstName} {me?.lastName}
{me?.email}
{me.isEmailConfirmationRequired && (
Confirm your email {' '} to create and deploy live actions.
)} {orgNav.length > 0 ? ( <>
 
) : ( <>
)}
) }