This commit is contained in:
cracklesparkle
2024-10-09 16:51:37 +09:00
parent b88d83cd74
commit 974fc12b34
32 changed files with 3456 additions and 1671 deletions

View File

@ -3,31 +3,32 @@ import Main from "./pages/Main"
import Users from "./pages/Users"
import Roles from "./pages/Roles"
import NotFound from "./pages/NotFound"
import DashboardLayout from "./layouts/DashboardLayout"
import MainLayout from "./layouts/MainLayout"
import SignIn from "./pages/auth/SignIn"
import ApiTest from "./pages/ApiTest"
import SignUp from "./pages/auth/SignUp"
import { initAuth, useAuthStore } from "./store/auth"
import { useEffect, useState } from "react"
import { Box, CircularProgress } from "@mui/material"
import Documents from "./pages/Documents"
import Reports from "./pages/Reports"
import Boilers from "./pages/Boilers"
import Servers from "./pages/Servers"
import { Api, Assignment, Cloud, Factory, Home, Login, Map, MonitorHeart, Password, People, Settings as SettingsIcon, Shield, Storage, Warning } from "@mui/icons-material"
import Settings from "./pages/Settings"
import PasswordReset from "./pages/auth/PasswordReset"
import MapTest from "./pages/MapTest"
import MonitorPage from "./pages/MonitorPage"
import ChunkedUpload from "./components/map/ChunkedUpload"
import DashboardLayout from "./layouts/DashboardLayout"
import { IconApi, IconBuildingFactory2, IconDeviceDesktopAnalytics, IconFiles, IconFlag2, IconHome, IconLogin, IconLogin2, IconMap, IconPassword, IconReport, IconServer, IconSettings, IconShield, IconTable, IconUsers } from "@tabler/icons-react"
import { Box, Loader } from "@mantine/core"
import TableTest from "./pages/TableTest"
// Определение страниц с путями и компонентом для рендера
export const pages = [
{
label: "",
path: "/auth/signin",
icon: <Login />,
icon: <IconLogin2 />,
component: <SignIn />,
drawer: false,
dashboard: false,
@ -36,7 +37,7 @@ export const pages = [
{
label: "",
path: "/auth/signup",
icon: <Login />,
icon: <IconLogin />,
component: <SignUp />,
drawer: false,
dashboard: false,
@ -45,7 +46,7 @@ export const pages = [
{
label: "",
path: "/auth/password-reset",
icon: <Password />,
icon: <IconPassword />,
component: <PasswordReset />,
drawer: false,
dashboard: false,
@ -54,7 +55,7 @@ export const pages = [
{
label: "Настройки",
path: "/settings",
icon: <SettingsIcon />,
icon: <IconSettings />,
component: <Settings />,
drawer: false,
dashboard: true,
@ -63,7 +64,7 @@ export const pages = [
{
label: "Главная",
path: "/",
icon: <Home />,
icon: <IconHome />,
component: <Main />,
drawer: true,
dashboard: true,
@ -72,7 +73,7 @@ export const pages = [
{
label: "Пользователи",
path: "/user",
icon: <People />,
icon: <IconUsers />,
component: <Users />,
drawer: true,
dashboard: true,
@ -81,7 +82,7 @@ export const pages = [
{
label: "Роли",
path: "/role",
icon: <Shield />,
icon: <IconShield />,
component: <Roles />,
drawer: true,
dashboard: true,
@ -90,7 +91,7 @@ export const pages = [
{
label: "Документы",
path: "/documents",
icon: <Storage />,
icon: <IconFiles />,
component: <Documents />,
drawer: true,
dashboard: true,
@ -99,7 +100,7 @@ export const pages = [
{
label: "Отчеты",
path: "/reports",
icon: <Assignment />,
icon: <IconReport />,
component: <Reports />,
drawer: true,
dashboard: true,
@ -108,7 +109,7 @@ export const pages = [
{
label: "Серверы",
path: "/servers",
icon: <Cloud />,
icon: <IconServer />,
component: <Servers />,
drawer: true,
dashboard: true,
@ -117,7 +118,7 @@ export const pages = [
{
label: "Котельные",
path: "/boilers",
icon: <Factory />,
icon: <IconBuildingFactory2 />,
component: <Boilers />,
drawer: true,
dashboard: true,
@ -126,7 +127,7 @@ export const pages = [
{
label: "API Test",
path: "/api-test",
icon: <Api />,
icon: <IconApi />,
component: <ApiTest />,
drawer: true,
dashboard: true,
@ -135,16 +136,16 @@ export const pages = [
{
label: "ИКС",
path: "/map-test",
icon: <Map />,
icon: <IconMap />,
component: <MapTest />,
drawer: true,
dashboard: true,
enabled: false,
enabled: true,
},
{
label: "Chunk test",
path: "/chunk-test",
icon: <Warning />,
icon: <IconFlag2 />,
component: <ChunkedUpload />,
drawer: true,
dashboard: true,
@ -153,12 +154,21 @@ export const pages = [
{
label: "Монитор",
path: "/monitor",
icon: <MonitorHeart />,
icon: <IconDeviceDesktopAnalytics />,
component: <MonitorPage />,
drawer: true,
dashboard: true,
enabled: false,
},
{
label: "Table test",
path: "/table-test",
icon: <IconTable />,
component: <TableTest />,
drawer: true,
dashboard: true,
enabled: true,
},
]
function App() {
@ -178,14 +188,11 @@ function App() {
if (isLoading) {
return (
<CircularProgress />
<Loader />
)
} else {
return (
<Box sx={{
width: "100%",
height: "100vh"
}}>
<Box w='100%' h='100vh'>
<Router>
<Routes>
<Route element={<MainLayout />}>
@ -194,7 +201,7 @@ function App() {
))}
</Route>
<Route element={auth.isAuthenticated ? <DashboardLayout /> : <Navigate to={"/auth/signin"} />}>
<Route element={auth.isAuthenticated ? <DashboardLayout></DashboardLayout> : <Navigate to={"/auth/signin"} />}>
{pages.filter((page) => page.dashboard).filter((page) => page.enabled).map((page, index) => (
<Route key={`dl-${index}`} path={page.path} element={page.component} />
))}