import { useState } from 'react' import { Link, routes } from '@redwoodjs/router' import { useAuth } from '@redwoodjs/auth' import { Flash } from '@redwoodjs/web' import Tooltip from '@material-ui/core/Tooltip' import { useQuery } from '@redwoodjs/web' import Popover from '@material-ui/core/Popover' import { getActiveClasses } from 'get-active-classes' export const QUERY = gql` query FIND_USER_BY_ID($id: String!) { user: user(id: $id) { id image userName name } } ` import Svg from 'src/components/Svg' import ImageUploader from 'src/components/ImageUploader' import logo from 'src/layouts/MainLayout/Logo_2.jpg' const MainLayout = ({ children }) => { const { logIn, logOut, isAuthenticated, currentUser } = useAuth() const { data, loading } = useQuery(QUERY, { skip: !currentUser?.sub, variables: { id: currentUser?.sub }, }) const [isOpen, setIsOpen] = useState(false) const [anchorEl, setAnchorEl] = useState(null) const [popoverId, setPopoverId] = useState(undefined) const openPopover = (target) => { setAnchorEl(target) setPopoverId('simple-popover') setIsOpen(true) } const closePopover = () => { setAnchorEl(null) setPopoverId(undefined) setIsOpen(false) } const togglePopover = ({ currentTarget }) => { if (isOpen) { return closePopover() } openPopover(currentTarget) } return ( <> {/* Because of how specific these styles are to this heading/logo and it doesn't need to be replicated else where as well as it's very precise with the placement of "pre-alpha" I think it's appropriate. */} CadHub pre-alpha {isAuthenticated && data?.user?.userName ? ( ) : ( )} {!loading && ( {}} aspectRatio={1} imageUrl={data?.user?.image} width={80} /> )} {isAuthenticated && currentUser ? ( Hello {data?.user?.name} Edit Profile Logout ) : ( LOGIN/SIGNUP )} {children} > ) } export default MainLayout