import type {Route} from "../../.react-router/types/app/pages/+types/Dashboard"; import {useDisclosure, useWindowScroll} from "@mantine/hooks"; import {Affix, AppShell, Button, Space, Stack, Transition} from "@mantine/core"; import {PageHeader} from "~/components/PageHeader.tsx"; import {PageNavbar} from "~/components/PageNavbar.tsx"; import {useEffect, useState} from "react"; import {Outlet, useLocation, useNavigate} from "react-router"; import {getEnumKeyByValue} from "~/utils/utils.ts"; import {apiPing} from "~/utils/compare_api.ts"; import ArrowUpIcon from "mdi-react/ArrowUpIcon"; import HomeIcon from "mdi-react/HomeIcon"; import GlobalAffix from "~/components/GlobalAffix.tsx"; import {DashboardPageType} from "~/utils/enums.ts"; export function meta({}: Route.MetaArgs) { return [ { title: "Dashboard" }, { name: "description", content: "Dashboard Main" }, ]; } export default function Component() { const navigate = useNavigate(); const [currentStat, setCurrentStat] = useState(DashboardPageType.Home) const [opened, { toggle }] = useDisclosure() const location = useLocation(); const changePage = (pageType: DashboardPageType, navigateTo?: string) => { // if (currentStat == pageType) return setCurrentStat(pageType) navigate(navigateTo || pageType) } const refreshMyInfo = () => { apiPing() .then((res => { if (!res.success) { navigate(DashboardPageType.Home) } })) .catch(err => { console.log("apiGetMyInfo failed", err) navigate(DashboardPageType.Home) }) } useEffect(() => { refreshMyInfo() let currPage = getEnumKeyByValue(DashboardPageType, location.pathname) if (currPage) { setCurrentStat(DashboardPageType[currPage]) } else { const pathParts = location.pathname.split("/") const path = pathParts.slice(0, pathParts.length - 1).join("/") currPage = getEnumKeyByValue(DashboardPageType, path + "/") if (currPage) { setCurrentStat(DashboardPageType[currPage]) } } }, []); return ( ); }