import React from "react";
import { matchPath, Route, Routes, useLocation } from "react-router-dom";
import { usePageTabStore, useUserStore } from "stores";
import { StoreSpinner } from "../@core/components";
import { EXAMPLE_ROUTERS } from "../@core/router/exampleRouter";
import { loadCoreExample, loadCoreSystem } from "../@core/utils/object";
import RequireAuth from "./RequireAuth";
import RestrictAuth from "./RestrictAuth";
import { ROUTES, ROUTES_LIST } from "./Routes";
import { useAppMenu } from "./useAppMenu";
const FrameDefault = React.lazy(() => import("pageFrame/FrameDefault"));
const FrameProgram = React.lazy(() => import("pageFrame/FrameProgram"));
const Home = React.lazy(() => import("pages/home/App"));
const SignIn = React.lazy(() => import("pages/signIn/App"));
const Error404 = React.lazy(() => import("pages/error/Error404"));
const ModalDemo = React.lazy(() => import("@core/modals/demo/App"));
/* ##IMPORT_COMPONENT_POSITION## */
function PageRoute() {
const setSelectedMenuUuid = useUserStore((s) => s.setSelectedMenuUuid);
const setActiveTabByPath = usePageTabStore((s) => s.setActiveTabByPath);
const { MENUS_LIST } = useAppMenu();
const location = useLocation();
React.useEffect(() => {
const route = ROUTES_LIST.find((route) => matchPath(route.path, location.pathname));
if (!route) {
return;
}
const currentMenu = MENUS_LIST.find((m) => m.progCd && m.progCd === route.program_type);
setSelectedMenuUuid(currentMenu?.keyPath?.join("_") ?? "");
setActiveTabByPath(location.pathname);
}, [MENUS_LIST, location.pathname, setActiveTabByPath, setSelectedMenuUuid]);
return (
}>
}
>
{/* ##INSERT_ROUTE_POSITION## */}
} />
}
>
} />
} />
} />
);
}
export default PageRoute;