Refactor routing structure in App component to utilize modular route files for Production, Inventory, Management, and Developer sections. Update import paths for stylesheets and streamline route management for improved maintainability and organization.
This commit is contained in:
parent
ed322436e6
commit
257cebf15c
189
src/App.jsx
189
src/App.jsx
@ -8,69 +8,29 @@ import {
|
|||||||
} from 'react-router-dom'
|
} from 'react-router-dom'
|
||||||
import { App, ConfigProvider } from 'antd'
|
import { App, ConfigProvider } from 'antd'
|
||||||
|
|
||||||
import ProductionOverview from './components/Dashboard/Production/ProductionOverview'
|
|
||||||
|
|
||||||
import Printers from './components/Dashboard/Production/Printers'
|
|
||||||
import ControlPrinter from './components/Dashboard/Production/Printers/ControlPrinter.jsx'
|
|
||||||
import PrinterInfo from './components/Dashboard/Production/Printers/PrinterInfo.jsx'
|
|
||||||
|
|
||||||
import Jobs from './components/Dashboard/Production/Jobs.jsx'
|
|
||||||
import JobInfo from './components/Dashboard/Production/Jobs/JobInfo.jsx'
|
|
||||||
|
|
||||||
import Filaments from './components/Dashboard/Management/Filaments'
|
|
||||||
import FilamentInfo from './components/Dashboard/Management/Filaments/FilamentInfo.jsx'
|
|
||||||
|
|
||||||
import GCodeFiles from './components/Dashboard/Production/GCodeFiles'
|
|
||||||
import GCodeFileInfo from './components/Dashboard/Production/GCodeFiles/GCodeFileInfo.jsx'
|
|
||||||
|
|
||||||
import Parts from './components/Dashboard/Management/Parts.jsx'
|
|
||||||
import PartInfo from './components/Dashboard/Management/Parts/PartInfo.jsx'
|
|
||||||
|
|
||||||
import Products from './components/Dashboard/Management/Products.jsx'
|
|
||||||
import ProductInfo from './components/Dashboard/Management/Products/ProductInfo.jsx'
|
|
||||||
|
|
||||||
import Vendors from './components/Dashboard/Management/Vendors'
|
|
||||||
import VendorInfo from './components/Dashboard/Management/Vendors/VendorInfo'
|
|
||||||
|
|
||||||
import Materials from './components/Dashboard/Management/Materials'
|
|
||||||
|
|
||||||
import FilamentStocks from './components/Dashboard/Inventory/FilamentStocks.jsx'
|
|
||||||
import FilamentStockInfo from './components/Dashboard/Inventory/FilamentStocks/FilamentStockInfo.jsx'
|
|
||||||
|
|
||||||
import PartStocks from './components/Dashboard/Inventory/PartStocks.jsx'
|
|
||||||
|
|
||||||
import StockAudits from './components/Dashboard/Inventory/StockAudits.jsx'
|
|
||||||
import StockAuditInfo from './components/Dashboard/Inventory/StockAudits/StockAuditInfo.jsx'
|
|
||||||
|
|
||||||
import Dashboard from './components/Dashboard/Dashboard.jsx'
|
import Dashboard from './components/Dashboard/Dashboard.jsx'
|
||||||
import PrivateRoute from './components/PrivateRoute'
|
import PrivateRoute from './components/PrivateRoute'
|
||||||
import './App.css'
|
import './assets/stylesheets/App.css'
|
||||||
import { PrintServerProvider } from './components/Dashboard/context/PrintServerContext.js'
|
import { PrintServerProvider } from './components/Dashboard/context/PrintServerContext.js'
|
||||||
import { AuthProvider } from './components/Dashboard/context/AuthContext.js'
|
import { AuthProvider } from './components/Dashboard/context/AuthContext.js'
|
||||||
import { SpotlightProvider } from './components/Dashboard/context/SpotlightContext.js'
|
import { SpotlightProvider } from './components/Dashboard/context/SpotlightContext.js'
|
||||||
import StockEvents from './components/Dashboard/Inventory/StockEvents.jsx'
|
|
||||||
|
|
||||||
import Settings from './components/Dashboard/Management/Settings'
|
|
||||||
import AuditLogs from './components/Dashboard/Management/AuditLogs.jsx'
|
|
||||||
|
|
||||||
import {
|
import {
|
||||||
ThemeProvider,
|
ThemeProvider,
|
||||||
useThemeContext
|
useThemeContext
|
||||||
} from './components/Dashboard/context/ThemeContext'
|
} from './components/Dashboard/context/ThemeContext'
|
||||||
import AppError from './components/App/AppError'
|
import AppError from './components/App/AppError'
|
||||||
import NoteTypes from './components/Dashboard/Management/NoteTypes.jsx'
|
|
||||||
import NoteTypeInfo from './components/Dashboard/Management/NoteTypes/NoteTypeInfo.jsx'
|
|
||||||
import SessionStorage from './components/Dashboard/Developer/SessionStorage.jsx'
|
|
||||||
import AuthContextDebug from './components/Dashboard/Developer/AuthContextDebug.jsx'
|
|
||||||
import PrintServerContextDebug from './components/Dashboard/Developer/PrintServerContextDebug.jsx'
|
|
||||||
import { ApiServerProvider } from './components/Dashboard/context/ApiServerContext.js'
|
import { ApiServerProvider } from './components/Dashboard/context/ApiServerContext.js'
|
||||||
import Users from './components/Dashboard/Management/Users.jsx'
|
|
||||||
import UserInfo from './components/Dashboard/Management/Users/UserInfo.jsx'
|
|
||||||
import SubJobs from './components/Dashboard/Production/SubJobs.jsx'
|
|
||||||
import Hosts from './components/Dashboard/Management/Hosts.jsx'
|
|
||||||
import { ElectronProvider } from './components/Dashboard/context/ElectronContext.js'
|
import { ElectronProvider } from './components/Dashboard/context/ElectronContext.js'
|
||||||
import AuthCallback from './components/App/AuthCallback.jsx'
|
import AuthCallback from './components/App/AuthCallback.jsx'
|
||||||
|
|
||||||
|
import {
|
||||||
|
ProductionRoutes,
|
||||||
|
InventoryRoutes,
|
||||||
|
ManagementRoutes,
|
||||||
|
DeveloperRoutes
|
||||||
|
} from './routes'
|
||||||
|
|
||||||
const getRouter = () => {
|
const getRouter = () => {
|
||||||
if (
|
if (
|
||||||
typeof window !== 'undefined' &&
|
typeof window !== 'undefined' &&
|
||||||
@ -115,135 +75,10 @@ const AppContent = () => {
|
|||||||
<PrivateRoute component={() => <Dashboard />} />
|
<PrivateRoute component={() => <Dashboard />} />
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
{/* Production Routes */}
|
{ProductionRoutes}
|
||||||
<Route
|
{InventoryRoutes}
|
||||||
path='production/overview'
|
{ManagementRoutes}
|
||||||
element={<ProductionOverview />}
|
{DeveloperRoutes}
|
||||||
/>
|
|
||||||
<Route
|
|
||||||
path='production/printers'
|
|
||||||
element={<Printers />}
|
|
||||||
/>
|
|
||||||
<Route
|
|
||||||
path='production/printers/control'
|
|
||||||
element={<ControlPrinter />}
|
|
||||||
/>
|
|
||||||
<Route
|
|
||||||
path='production/printers/info'
|
|
||||||
element={<PrinterInfo />}
|
|
||||||
/>
|
|
||||||
<Route path='production/jobs' element={<Jobs />} />
|
|
||||||
<Route
|
|
||||||
path='production/subjobs'
|
|
||||||
element={<SubJobs />}
|
|
||||||
/>
|
|
||||||
<Route
|
|
||||||
path='production/jobs/info'
|
|
||||||
element={<JobInfo />}
|
|
||||||
/>
|
|
||||||
<Route
|
|
||||||
path='production/gcodefiles'
|
|
||||||
element={<GCodeFiles />}
|
|
||||||
/>
|
|
||||||
<Route
|
|
||||||
path='production/gcodefiles/info'
|
|
||||||
element={<GCodeFileInfo />}
|
|
||||||
/>
|
|
||||||
|
|
||||||
{/* Inventory Routes */}
|
|
||||||
<Route
|
|
||||||
path='inventory/filamentstocks'
|
|
||||||
element={<FilamentStocks />}
|
|
||||||
/>
|
|
||||||
<Route
|
|
||||||
path='inventory/filamentstocks/info'
|
|
||||||
element={<FilamentStockInfo />}
|
|
||||||
/>
|
|
||||||
<Route
|
|
||||||
path='inventory/partstocks'
|
|
||||||
element={<PartStocks />}
|
|
||||||
/>
|
|
||||||
<Route
|
|
||||||
path='inventory/stockevents'
|
|
||||||
element={<StockEvents />}
|
|
||||||
/>
|
|
||||||
<Route
|
|
||||||
path='inventory/stockaudits'
|
|
||||||
element={<StockAudits />}
|
|
||||||
/>
|
|
||||||
<Route
|
|
||||||
path='inventory/stockaudits/info'
|
|
||||||
element={<StockAuditInfo />}
|
|
||||||
/>
|
|
||||||
|
|
||||||
{/* Management Routes */}
|
|
||||||
<Route
|
|
||||||
path='management/filaments'
|
|
||||||
element={<Filaments />}
|
|
||||||
/>
|
|
||||||
<Route
|
|
||||||
path='management/filaments/info'
|
|
||||||
element={<FilamentInfo />}
|
|
||||||
/>
|
|
||||||
<Route path='management/parts' element={<Parts />} />
|
|
||||||
<Route
|
|
||||||
path='management/parts/info'
|
|
||||||
element={<PartInfo />}
|
|
||||||
/>
|
|
||||||
<Route
|
|
||||||
path='management/products'
|
|
||||||
element={<Products />}
|
|
||||||
/>
|
|
||||||
<Route
|
|
||||||
path='management/products/info'
|
|
||||||
element={<ProductInfo />}
|
|
||||||
/>
|
|
||||||
<Route
|
|
||||||
path='management/vendors'
|
|
||||||
element={<Vendors />}
|
|
||||||
/>
|
|
||||||
<Route path='management/hosts' element={<Hosts />} />
|
|
||||||
<Route
|
|
||||||
path='management/users/info'
|
|
||||||
element={<UserInfo />}
|
|
||||||
/>
|
|
||||||
<Route
|
|
||||||
path='management/vendors/info'
|
|
||||||
element={<VendorInfo />}
|
|
||||||
/>
|
|
||||||
<Route
|
|
||||||
path='management/materials'
|
|
||||||
element={<Materials />}
|
|
||||||
/>
|
|
||||||
<Route
|
|
||||||
path='management/notetypes'
|
|
||||||
element={<NoteTypes />}
|
|
||||||
/>
|
|
||||||
<Route path='management/users' element={<Users />} />
|
|
||||||
<Route
|
|
||||||
path='management/notetypes/info'
|
|
||||||
element={<NoteTypeInfo />}
|
|
||||||
/>
|
|
||||||
<Route
|
|
||||||
path='management/settings'
|
|
||||||
element={<Settings />}
|
|
||||||
/>
|
|
||||||
<Route
|
|
||||||
path='management/auditlogs'
|
|
||||||
element={<AuditLogs />}
|
|
||||||
/>
|
|
||||||
<Route
|
|
||||||
path='developer/sessionstorage'
|
|
||||||
element={<SessionStorage />}
|
|
||||||
/>
|
|
||||||
<Route
|
|
||||||
path='developer/authcontextdebug'
|
|
||||||
element={<AuthContextDebug />}
|
|
||||||
/>
|
|
||||||
<Route
|
|
||||||
path='developer/printservercontextdebug'
|
|
||||||
element={<PrintServerContextDebug />}
|
|
||||||
/>
|
|
||||||
</Route>
|
</Route>
|
||||||
<Route
|
<Route
|
||||||
path='*'
|
path='*'
|
||||||
|
|||||||
25
src/routes/DeveloperRoutes.jsx
Normal file
25
src/routes/DeveloperRoutes.jsx
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
import React from 'react'
|
||||||
|
import { Route } from 'react-router-dom'
|
||||||
|
import SessionStorage from '../components/Dashboard/Developer/SessionStorage.jsx'
|
||||||
|
import AuthContextDebug from '../components/Dashboard/Developer/AuthContextDebug.jsx'
|
||||||
|
import PrintServerContextDebug from '../components/Dashboard/Developer/PrintServerContextDebug.jsx'
|
||||||
|
|
||||||
|
const DeveloperRoutes = [
|
||||||
|
<Route
|
||||||
|
key='sessionstorage'
|
||||||
|
path='developer/sessionstorage'
|
||||||
|
element={<SessionStorage />}
|
||||||
|
/>,
|
||||||
|
<Route
|
||||||
|
key='authcontextdebug'
|
||||||
|
path='developer/authcontextdebug'
|
||||||
|
element={<AuthContextDebug />}
|
||||||
|
/>,
|
||||||
|
<Route
|
||||||
|
key='printservercontextdebug'
|
||||||
|
path='developer/printservercontextdebug'
|
||||||
|
element={<PrintServerContextDebug />}
|
||||||
|
/>
|
||||||
|
]
|
||||||
|
|
||||||
|
export default DeveloperRoutes
|
||||||
44
src/routes/InventoryRoutes.jsx
Normal file
44
src/routes/InventoryRoutes.jsx
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
import React from 'react'
|
||||||
|
import { Route } from 'react-router-dom'
|
||||||
|
|
||||||
|
import FilamentStocks from '../components/Dashboard/Inventory/FilamentStocks.jsx'
|
||||||
|
import FilamentStockInfo from '../components/Dashboard/Inventory/FilamentStocks/FilamentStockInfo.jsx'
|
||||||
|
import PartStocks from '../components/Dashboard/Inventory/PartStocks.jsx'
|
||||||
|
import StockEvents from '../components/Dashboard/Inventory/StockEvents.jsx'
|
||||||
|
import StockAudits from '../components/Dashboard/Inventory/StockAudits.jsx'
|
||||||
|
import StockAuditInfo from '../components/Dashboard/Inventory/StockAudits/StockAuditInfo.jsx'
|
||||||
|
|
||||||
|
const InventoryRoutes = [
|
||||||
|
<Route
|
||||||
|
key='filamentstocks'
|
||||||
|
path='inventory/filamentstocks'
|
||||||
|
element={<FilamentStocks />}
|
||||||
|
/>,
|
||||||
|
<Route
|
||||||
|
key='filamentstocks-info'
|
||||||
|
path='inventory/filamentstocks/info'
|
||||||
|
element={<FilamentStockInfo />}
|
||||||
|
/>,
|
||||||
|
<Route
|
||||||
|
key='partstocks'
|
||||||
|
path='inventory/partstocks'
|
||||||
|
element={<PartStocks />}
|
||||||
|
/>,
|
||||||
|
<Route
|
||||||
|
key='stockevents'
|
||||||
|
path='inventory/stockevents'
|
||||||
|
element={<StockEvents />}
|
||||||
|
/>,
|
||||||
|
<Route
|
||||||
|
key='stockaudits'
|
||||||
|
path='inventory/stockaudits'
|
||||||
|
element={<StockAudits />}
|
||||||
|
/>,
|
||||||
|
<Route
|
||||||
|
key='stockaudits-info'
|
||||||
|
path='inventory/stockaudits/info'
|
||||||
|
element={<StockAuditInfo />}
|
||||||
|
/>
|
||||||
|
]
|
||||||
|
|
||||||
|
export default InventoryRoutes
|
||||||
112
src/routes/ManagementRoutes.jsx
Normal file
112
src/routes/ManagementRoutes.jsx
Normal file
@ -0,0 +1,112 @@
|
|||||||
|
import React from 'react'
|
||||||
|
import { Route } from 'react-router-dom'
|
||||||
|
|
||||||
|
import Filaments from '../components/Dashboard/Management/Filaments'
|
||||||
|
import FilamentInfo from '../components/Dashboard/Management/Filaments/FilamentInfo.jsx'
|
||||||
|
import Parts from '../components/Dashboard/Management/Parts.jsx'
|
||||||
|
import PartInfo from '../components/Dashboard/Management/Parts/PartInfo.jsx'
|
||||||
|
import Products from '../components/Dashboard/Management/Products.jsx'
|
||||||
|
import ProductInfo from '../components/Dashboard/Management/Products/ProductInfo.jsx'
|
||||||
|
import Vendors from '../components/Dashboard/Management/Vendors'
|
||||||
|
import VendorInfo from '../components/Dashboard/Management/Vendors/VendorInfo'
|
||||||
|
import Materials from '../components/Dashboard/Management/Materials'
|
||||||
|
import Settings from '../components/Dashboard/Management/Settings'
|
||||||
|
import AuditLogs from '../components/Dashboard/Management/AuditLogs.jsx'
|
||||||
|
import NoteTypes from '../components/Dashboard/Management/NoteTypes.jsx'
|
||||||
|
import NoteTypeInfo from '../components/Dashboard/Management/NoteTypes/NoteTypeInfo.jsx'
|
||||||
|
import Users from '../components/Dashboard/Management/Users.jsx'
|
||||||
|
import UserInfo from '../components/Dashboard/Management/Users/UserInfo.jsx'
|
||||||
|
import Hosts from '../components/Dashboard/Management/Hosts.jsx'
|
||||||
|
import HostInfo from '../components/Dashboard/Management/Hosts/HostInfo.jsx'
|
||||||
|
import DocumentSizes from '../components/Dashboard/Management/DocumentSizes.jsx'
|
||||||
|
import DocumentSizeInfo from '../components/Dashboard/Management/DocumentSizes/DocumentSizeInfo.jsx'
|
||||||
|
import DocumentTemplates from '../components/Dashboard/Management/DocumentTemplates.jsx'
|
||||||
|
import DocumentTemplateInfo from '../components/Dashboard/Management/DocumentTemplates/DocumentTemplateInfo.jsx'
|
||||||
|
import DocumentPrinters from '../components/Dashboard/Management/DocumentPrinters.jsx'
|
||||||
|
import DocumentPrinterInfo from '../components/Dashboard/Management/DocumentPrinters/DocumentPrinterInfo.jsx'
|
||||||
|
import DocumentTemplateDesign from '../components/Dashboard/Management/DocumentTemplates/DocumentTemplateDesign.jsx'
|
||||||
|
|
||||||
|
const ManagementRoutes = [
|
||||||
|
<Route key='filaments' path='management/filaments' element={<Filaments />} />,
|
||||||
|
<Route
|
||||||
|
key='filaments-info'
|
||||||
|
path='management/filaments/info'
|
||||||
|
element={<FilamentInfo />}
|
||||||
|
/>,
|
||||||
|
<Route key='parts' path='management/parts' element={<Parts />} />,
|
||||||
|
<Route
|
||||||
|
key='parts-info'
|
||||||
|
path='management/parts/info'
|
||||||
|
element={<PartInfo />}
|
||||||
|
/>,
|
||||||
|
<Route key='products' path='management/products' element={<Products />} />,
|
||||||
|
<Route
|
||||||
|
key='products-info'
|
||||||
|
path='management/products/info'
|
||||||
|
element={<ProductInfo />}
|
||||||
|
/>,
|
||||||
|
<Route key='vendors' path='management/vendors' element={<Vendors />} />,
|
||||||
|
<Route key='hosts' path='management/hosts' element={<Hosts />} />,
|
||||||
|
<Route
|
||||||
|
key='hosts-info'
|
||||||
|
path='management/hosts/info'
|
||||||
|
element={<HostInfo />}
|
||||||
|
/>,
|
||||||
|
<Route
|
||||||
|
key='users-info'
|
||||||
|
path='management/users/info'
|
||||||
|
element={<UserInfo />}
|
||||||
|
/>,
|
||||||
|
<Route
|
||||||
|
key='vendors-info'
|
||||||
|
path='management/vendors/info'
|
||||||
|
element={<VendorInfo />}
|
||||||
|
/>,
|
||||||
|
<Route key='materials' path='management/materials' element={<Materials />} />,
|
||||||
|
<Route key='notetypes' path='management/notetypes' element={<NoteTypes />} />,
|
||||||
|
<Route
|
||||||
|
key='notetypes-info'
|
||||||
|
path='management/notetypes/info'
|
||||||
|
element={<NoteTypeInfo />}
|
||||||
|
/>,
|
||||||
|
<Route
|
||||||
|
key='documentsizes'
|
||||||
|
path='management/documentsizes'
|
||||||
|
element={<DocumentSizes />}
|
||||||
|
/>,
|
||||||
|
<Route
|
||||||
|
key='documentsizes-info'
|
||||||
|
path='management/documentsizes/info'
|
||||||
|
element={<DocumentSizeInfo />}
|
||||||
|
/>,
|
||||||
|
<Route
|
||||||
|
key='documenttemplates'
|
||||||
|
path='management/documenttemplates'
|
||||||
|
element={<DocumentTemplates />}
|
||||||
|
/>,
|
||||||
|
<Route
|
||||||
|
key='documenttemplates-info'
|
||||||
|
path='management/documenttemplates/info'
|
||||||
|
element={<DocumentTemplateInfo />}
|
||||||
|
/>,
|
||||||
|
<Route
|
||||||
|
key='documentprinters'
|
||||||
|
path='management/documentprinters'
|
||||||
|
element={<DocumentPrinters />}
|
||||||
|
/>,
|
||||||
|
<Route
|
||||||
|
key='documentprinters-info'
|
||||||
|
path='management/documentprinters/info'
|
||||||
|
element={<DocumentPrinterInfo />}
|
||||||
|
/>,
|
||||||
|
<Route
|
||||||
|
key='documenttemplates-design'
|
||||||
|
path='management/documenttemplates/design'
|
||||||
|
element={<DocumentTemplateDesign />}
|
||||||
|
/>,
|
||||||
|
<Route key='users' path='management/users' element={<Users />} />,
|
||||||
|
<Route key='settings' path='management/settings' element={<Settings />} />,
|
||||||
|
<Route key='auditlogs' path='management/auditlogs' element={<AuditLogs />} />
|
||||||
|
]
|
||||||
|
|
||||||
|
export default ManagementRoutes
|
||||||
46
src/routes/ProductionRoutes.jsx
Normal file
46
src/routes/ProductionRoutes.jsx
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
import React from 'react'
|
||||||
|
import { Route } from 'react-router-dom'
|
||||||
|
|
||||||
|
import ProductionOverview from '../components/Dashboard/Production/ProductionOverview'
|
||||||
|
import Printers from '../components/Dashboard/Production/Printers'
|
||||||
|
import ControlPrinter from '../components/Dashboard/Production/Printers/ControlPrinter.jsx'
|
||||||
|
import PrinterInfo from '../components/Dashboard/Production/Printers/PrinterInfo.jsx'
|
||||||
|
import Jobs from '../components/Dashboard/Production/Jobs.jsx'
|
||||||
|
import JobInfo from '../components/Dashboard/Production/Jobs/JobInfo.jsx'
|
||||||
|
import SubJobs from '../components/Dashboard/Production/SubJobs.jsx'
|
||||||
|
import GCodeFiles from '../components/Dashboard/Production/GCodeFiles'
|
||||||
|
import GCodeFileInfo from '../components/Dashboard/Production/GCodeFiles/GCodeFileInfo.jsx'
|
||||||
|
|
||||||
|
const ProductionRoutes = [
|
||||||
|
<Route
|
||||||
|
key='production-overview'
|
||||||
|
path='production/overview'
|
||||||
|
element={<ProductionOverview />}
|
||||||
|
/>,
|
||||||
|
<Route key='printers' path='production/printers' element={<Printers />} />,
|
||||||
|
<Route
|
||||||
|
key='printers-control'
|
||||||
|
path='production/printers/control'
|
||||||
|
element={<ControlPrinter />}
|
||||||
|
/>,
|
||||||
|
<Route
|
||||||
|
key='printers-info'
|
||||||
|
path='production/printers/info'
|
||||||
|
element={<PrinterInfo />}
|
||||||
|
/>,
|
||||||
|
<Route key='jobs' path='production/jobs' element={<Jobs />} />,
|
||||||
|
<Route key='subjobs' path='production/subjobs' element={<SubJobs />} />,
|
||||||
|
<Route key='jobs-info' path='production/jobs/info' element={<JobInfo />} />,
|
||||||
|
<Route
|
||||||
|
key='gcodefiles'
|
||||||
|
path='production/gcodefiles'
|
||||||
|
element={<GCodeFiles />}
|
||||||
|
/>,
|
||||||
|
<Route
|
||||||
|
key='gcodefiles-info'
|
||||||
|
path='production/gcodefiles/info'
|
||||||
|
element={<GCodeFileInfo />}
|
||||||
|
/>
|
||||||
|
]
|
||||||
|
|
||||||
|
export default ProductionRoutes
|
||||||
Loading…
x
Reference in New Issue
Block a user