'use client'; import * as React from 'react'; import RouterLink from 'next/link'; import { usePathname, useRouter } from 'next/navigation'; import { COL_USER_METAS } from '@/constants'; import { LoadingButton } from '@mui/lab'; import Avatar from '@mui/material/Avatar'; import Stack from '@mui/material/Stack'; import Typography from '@mui/material/Typography'; import { useTranslation } from 'react-i18next'; import { paths } from '@/paths'; import { logger } from '@/lib/default-logger'; import { fileToBase64 } from '@/lib/file-to-base64'; import getImageUrlFromFile from '@/lib/get-image-url-from-file.ts'; import { pb } from '@/lib/pb'; import { useUser } from '@/hooks/use-user'; import { toast } from '@/components/core/toaster'; import FormLoading from '@/components/loading'; import ErrorDisplay from '../../error'; import { NavItem } from './nav-item'; import { navItems } from './navItems'; export function SideNav(): React.JSX.Element { const router = useRouter(); const { t } = useTranslation(); const { user, isLoading } = useUser(); const pathname = usePathname(); const [isUpdating, setIsUpdating] = React.useState(false); const [showLoading, setShowLoading] = React.useState(false); const [showError, setShowError] = React.useState({ show: false, detail: '' }); if (showLoading) return ; if (!user) return <>loading; if (showError.show) return ( ); return (
{navItems.map((group) => ( {group.title ? (
{group.title}
) : null} {group.items.map((item) => ( ))}
))}
{user.name}
{user.name} {user.email}
); }