import { Box, Circle, HStack, Menu, MenuDivider, MenuItem, MenuList, Text, useColorModeValue } from '@chakra-ui/react' import {navigate} from 'gatsby' import {useInRouterContext} from 'react-router-dom' import {store as storePages} from '../internal-plugins/pages/internal/redux' import {internalActions} from '../internal-plugins/pages/internal/redux/slices' import {store, useAppDispatch, useAppSelector} from '../redux' import {demoLogout, logout} from '../redux/slices/auth' import {useIncomingBuildChecker} from '../services/IncomingBuildChecker' import {AccountSwitcherButton} from './components/AccountSwitcherButton' export const AccountSwitcher = () => { const dispatch = useAppDispatch() const incomingBuild = useIncomingBuildChecker() const handleSignOut = () => { const isDemo = store.getState().auth.user?.isDemo if (isDemo) { dispatch(demoLogout({})) } else { dispatch(logout()) } storePages.dispatch(internalActions.setIsEditing(false)) storePages.dispatch(internalActions.discardAllChanges()) } const user = useAppSelector(state => state.auth.user) const email = user?.email || 'No email' const fullName = user?.full_name || 'No name' const imageSrc = user?.image_url || 'https://avatars.githubusercontent.com/u/52858351?v=4' const notificationIcon = let inRouter = false if (typeof window !== 'undefined') { inRouter = useInRouterContext() } return ( {email} {!inRouter ? ( navigate('/admin')}> Admin ) : ( navigate('/')}> Landing Page )} {(incomingBuild.isIncomingBuild || incomingBuild.isDisabled) && ( {notificationIcon} Update to latest version )} Logout ) }