266 lines
11 KiB
JavaScript
266 lines
11 KiB
JavaScript
import React from 'react'
|
|
import {
|
|
BrowserRouter as Router,
|
|
Routes,
|
|
Route,
|
|
Navigate
|
|
} 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 { 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'
|
|
|
|
const AppContent = () => {
|
|
const { themeConfig } = useThemeContext()
|
|
|
|
return (
|
|
<ConfigProvider theme={themeConfig}>
|
|
<App>
|
|
<Router>
|
|
<ElectronProvider>
|
|
<AuthProvider>
|
|
<PrintServerProvider>
|
|
<ApiServerProvider>
|
|
<SpotlightProvider>
|
|
<Routes>
|
|
<Route
|
|
path='/'
|
|
element={
|
|
<PrivateRoute
|
|
component={() => (
|
|
<Navigate
|
|
to='/dashboard/production/overview'
|
|
replace
|
|
/>
|
|
)}
|
|
/>
|
|
}
|
|
/>
|
|
<Route path='/auth/callback' element={<AuthCallback />} />
|
|
<Route
|
|
path='/dashboard'
|
|
element={
|
|
<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 />}
|
|
/>
|
|
</Route>
|
|
<Route
|
|
path='*'
|
|
element={
|
|
<AppError
|
|
message='Error 404. Page not found.'
|
|
showRefresh={false}
|
|
/>
|
|
}
|
|
/>
|
|
</Routes>
|
|
</SpotlightProvider>
|
|
</ApiServerProvider>
|
|
</PrintServerProvider>
|
|
</AuthProvider>
|
|
</ElectronProvider>
|
|
</Router>
|
|
</App>
|
|
</ConfigProvider>
|
|
)
|
|
}
|
|
|
|
const FarmControlApp = () => {
|
|
return (
|
|
<ThemeProvider>
|
|
<AppContent />
|
|
</ThemeProvider>
|
|
)
|
|
}
|
|
|
|
export default FarmControlApp
|