diff --git a/client/src/App.tsx b/client/src/App.tsx index 5f82cea..ae1d388 100644 --- a/client/src/App.tsx +++ b/client/src/App.tsx @@ -1,165 +1,11 @@ import { BrowserRouter as Router, Route, Routes, Navigate } from "react-router-dom" -import Main from "./pages/Main" -import Users from "./pages/Users" -import Roles from "./pages/Roles" import NotFound from "./pages/NotFound" import MainLayout from "./layouts/MainLayout" -import SignIn from "./pages/auth/SignIn" -import SignUp from "./pages/auth/SignUp" import { initAuth, useAuthStore } from "./store/auth" import { useEffect, useState } from "react" -import Documents from "./pages/Documents" -import Reports from "./pages/Reports" -import Boilers from "./pages/Boilers" -import Servers from "./pages/Servers" -import Settings from "./pages/Settings" -import PasswordReset from "./pages/auth/PasswordReset" -import MapTest from "./pages/MapTest" -import MonitorPage from "./pages/MonitorPage" import DashboardLayout from "./layouts/DashboardLayout" -import { IconBuildingFactory2, IconComponents, IconDeviceDesktopAnalytics, IconFiles, 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" -import ComponentTest from "./pages/ComponentTest" - -// Определение страниц с путями и компонентом для рендера -export const pages = [ - { - label: "", - path: "/auth/signin", - icon: , - component: , - drawer: false, - dashboard: false, - enabled: true, - }, - { - label: "", - path: "/auth/signup", - icon: , - component: , - drawer: false, - dashboard: false, - enabled: false, - }, - { - label: "", - path: "/auth/password-reset", - icon: , - component: , - drawer: false, - dashboard: false, - enabled: true, - }, - { - label: "Настройки", - path: "/settings", - icon: , - component: , - drawer: false, - dashboard: true, - enabled: true, - }, - { - label: "Главная", - path: "/", - icon: , - component:
, - drawer: true, - dashboard: true, - enabled: true, - }, - { - label: "Пользователи", - path: "/user", - icon: , - component: , - drawer: true, - dashboard: true, - enabled: true, - }, - { - label: "Роли", - path: "/role", - icon: , - component: , - drawer: true, - dashboard: true, - enabled: true, - }, - { - label: "Документы", - path: "/documents", - icon: , - component: , - drawer: true, - dashboard: true, - enabled: true, - }, - { - label: "Отчеты", - path: "/reports", - icon: , - component: , - drawer: true, - dashboard: true, - enabled: true, - }, - { - label: "Серверы", - path: "/servers", - icon: , - component: , - drawer: true, - dashboard: true, - enabled: true, - }, - { - label: "Котельные", - path: "/boilers", - icon: , - component: , - drawer: true, - dashboard: true, - enabled: true, - }, - { - label: "ИКС", - path: "/map-test", - icon: , - component: , - drawer: true, - dashboard: true, - enabled: true, - }, - { - label: "Монитор", - path: "/monitor", - icon: , - component: , - drawer: true, - dashboard: true, - enabled: true, - }, - { - label: "Table test", - path: "/table-test", - icon: , - component: , - drawer: true, - dashboard: true, - enabled: true, - }, - { - label: "Component test", - path: "/component-test", - icon: , - component: , - drawer: true, - dashboard: true, - enabled: true, - }, -] +import { pages } from "./constants/app" function App() { const auth = useAuthStore() diff --git a/client/src/constants/app.tsx b/client/src/constants/app.tsx new file mode 100644 index 0000000..815f744 --- /dev/null +++ b/client/src/constants/app.tsx @@ -0,0 +1,160 @@ +import { IconBuildingFactory2, IconComponents, IconDeviceDesktopAnalytics, IconFiles, IconHome, IconLogin, IconLogin2, IconMap, IconPassword, IconReport, IconServer, IconSettings, IconShield, IconTable, IconUsers } from "@tabler/icons-react"; +import SignIn from "../pages/auth/SignIn"; +import SignUp from "../pages/auth/SignUp"; +import PasswordReset from "../pages/auth/PasswordReset"; +import TableTest from "../pages/TableTest"; +import ComponentTest from "../pages/ComponentTest"; +import MonitorPage from "../pages/MonitorPage"; +import Settings from "../pages/Settings"; +import Main from "../pages/Main"; +import Users from "../pages/Users"; +import Roles from "../pages/Roles"; +import Documents from "../pages/Documents"; +import Reports from "../pages/Reports"; +import Servers from "../pages/Servers"; +import Boilers from "../pages/Boilers"; +import MapTest from "../pages/MapTest"; + +// Определение страниц с путями и компонентом для рендера + +const pages = [ + { + label: "", + path: "/auth/signin", + icon: , + component: , + drawer: false, + dashboard: false, + enabled: true, + }, + { + label: "", + path: "/auth/signup", + icon: , + component: , + drawer: false, + dashboard: false, + enabled: false, + }, + { + label: "", + path: "/auth/password-reset", + icon: , + component: , + drawer: false, + dashboard: false, + enabled: true, + }, + { + label: "Настройки", + path: "/settings", + icon: , + component: , + drawer: false, + dashboard: true, + enabled: true, + }, + { + label: "Главная", + path: "/", + icon: , + component:
, + drawer: true, + dashboard: true, + enabled: true, + }, + { + label: "Пользователи", + path: "/user", + icon: , + component: , + drawer: true, + dashboard: true, + enabled: true, + }, + { + label: "Роли", + path: "/role", + icon: , + component: , + drawer: true, + dashboard: true, + enabled: true, + }, + { + label: "Документы", + path: "/documents", + icon: , + component: , + drawer: true, + dashboard: true, + enabled: true, + }, + { + label: "Отчеты", + path: "/reports", + icon: , + component: , + drawer: true, + dashboard: true, + enabled: true, + }, + { + label: "Серверы", + path: "/servers", + icon: , + component: , + drawer: true, + dashboard: true, + enabled: true, + }, + { + label: "Котельные", + path: "/boilers", + icon: , + component: , + drawer: true, + dashboard: true, + enabled: true, + }, + { + label: "ИКС", + path: "/map-test", + icon: , + component: , + drawer: true, + dashboard: true, + enabled: true, + }, + { + label: "Монитор", + path: "/monitor", + icon: , + component: , + drawer: true, + dashboard: true, + enabled: true, + }, + { + label: "Table test", + path: "/table-test", + icon: , + component: , + drawer: true, + dashboard: true, + enabled: true, + }, + { + label: "Component test", + path: "/component-test", + icon: , + component: , + drawer: true, + dashboard: true, + enabled: true, + }, +] + +export { + pages +} \ No newline at end of file diff --git a/client/src/layouts/DashboardLayout.tsx b/client/src/layouts/DashboardLayout.tsx index 2b5fda6..cc5e99b 100644 --- a/client/src/layouts/DashboardLayout.tsx +++ b/client/src/layouts/DashboardLayout.tsx @@ -1,11 +1,11 @@ import { AppShell, Avatar, Burger, Button, Flex, Group, Image, Menu, NavLink, rem, Text, useMantineColorScheme } from '@mantine/core'; import { useDisclosure } from '@mantine/hooks'; import { Outlet, useNavigate } from 'react-router-dom'; -import { pages } from '../App'; import { IconChevronDown, IconLogout, IconSettings, IconMoon, IconSun } from '@tabler/icons-react'; import { getUserData, logout, useAuthStore } from '../store/auth'; import { useEffect, useState } from 'react'; import { UserData } from '../interfaces/auth'; +import { pages } from '../constants/app'; function DashboardLayout() { const [mobileOpened, { toggle: toggleMobile }] = useDisclosure()