import {Outlet} from 'react-router-dom'; import {AdminSidebar} from './admin-sidebar'; import {DashboardLayout} from '../ui/layout/dashboard-layout'; import {DashboardContent} from '../ui/layout/dashboard-content'; import {DashboardSidenav} from '../ui/layout/dashboard-sidenav'; import {DashboardNavbar} from '../ui/layout/dashboard-navbar'; import { AdminSetupAlert, useAdminSetupAlerts, } from '@common/admin/use-admin-setup-alerts'; import {SectionHelper} from '@common/ui/section-helper'; import {ErrorIcon} from '@common/icons/material/Error'; import { setInLocalStorage, useLocalStorage, } from '@common/utils/hooks/local-storage'; export function AdminLayout() { return (
); } function SetupAlertsList() { const {data} = useAdminSetupAlerts(); const [dismissValue] = useLocalStorage<{ timestamp: number; } | null>('admin-setup-alert-dismissed', null); // show alert if 1 day passed since last dismiss const shouldShowAlert = !dismissValue || Date.now() - dismissValue.timestamp > 86400000; if (!data?.alerts.length || !shouldShowAlert) { return null; } return (
); } interface SetupAlertProps { alert: AdminSetupAlert; } function SetupAlert({alert}: SetupAlertProps) { const description = (
); return ( } onClose={() => { setInLocalStorage('admin-setup-alert-dismissed', { timestamp: Date.now(), }); }} key={alert.title} title={alert.title} description={description} color="neutral" /> ); }