'use client'; import { AppSidebar } from "@/components/app-sidebar" import { Breadcrumb, BreadcrumbItem, BreadcrumbList, BreadcrumbPage, } from "@/components/ui/breadcrumb" import { SidebarInset, SidebarProvider, SidebarTrigger, } from "@/components/ui/sidebar" import { UserApi } from "@/lib/api"; import { useRouter } from "next/navigation"; import { toast } from "sonner"; import useSWR from "swr"; export default function ConsoleMenuLayout({ children, }: { children: React.ReactNode }) { const router = useRouter(); const { data: user, isLoading, error } = useSWR( '/api/user/me', () => UserApi.me(), { onError: (error) => { if (error.statusCode === 401) { localStorage.removeItem('token'); toast.info('登录凭证已失效,请重新登录'); router.replace('/console/login'); } } } ); if (!isLoading && !error && !user) { router.replace('/console/login'); localStorage.removeItem('token'); toast.error('账户状态异常,请重新登录'); } return (
{new Intl.DateTimeFormat('en-US', { year: 'numeric', month: 'long' }).format(new Date())}
{children}
) }