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:
Tom Butcher 2025-08-18 00:54:54 +01:00
parent ed322436e6
commit 257cebf15c
5 changed files with 239 additions and 177 deletions

View File

@ -8,69 +8,29 @@ import {
} from 'react-router-dom'
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 PrivateRoute from './components/PrivateRoute'
import './App.css'
import './assets/stylesheets/App.css'
import { PrintServerProvider } from './components/Dashboard/context/PrintServerContext.js'
import { AuthProvider } from './components/Dashboard/context/AuthContext.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 {
ThemeProvider,
useThemeContext
} from './components/Dashboard/context/ThemeContext'
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 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 AuthCallback from './components/App/AuthCallback.jsx'
import {
ProductionRoutes,
InventoryRoutes,
ManagementRoutes,
DeveloperRoutes
} from './routes'
const getRouter = () => {
if (
typeof window !== 'undefined' &&
@ -115,135 +75,10 @@ const AppContent = () => {
<PrivateRoute component={() => <Dashboard />} />
}
>
{/* Production Routes */}
<Route
path='production/overview'
element={<ProductionOverview />}
/>
<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 />}
/>
{ProductionRoutes}
{InventoryRoutes}
{ManagementRoutes}
{DeveloperRoutes}
</Route>
<Route
path='*'

View 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

View 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

View 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

View 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