Owners/admins can run timed work days, manage tasks in a modal, and stop from the FAB or row control. Co-authored-by: Cursor <cursoragent@cursor.com>
194 lines
12 KiB
TypeScript
194 lines
12 KiB
TypeScript
import { BrowserRouter, Navigate, Routes, Route } from 'react-router-dom'
|
|
import { BusinessDomainGuard } from './components/BusinessDomainGuard'
|
|
import { DashboardDocumentTitle } from './components/DashboardDocumentTitle'
|
|
import { AuthProvider } from './context/AuthContext'
|
|
import { BusinessThemeProvider } from './context/BusinessThemeContext'
|
|
import { TenantBrandingProvider } from './context/TenantBrandingContext'
|
|
import { LocaleProvider } from '@meshkee/dashboard-ui'
|
|
import { ToastProvider } from './context/ToastContext'
|
|
import { ProtectedRoute } from './components/ProtectedRoute'
|
|
import { GuestRoute } from './components/GuestRoute'
|
|
import { PageLayout } from './components/PageLayout'
|
|
import { HomePage } from './pages/HomePage'
|
|
import { StatisticsPage } from './pages/StatisticsPage'
|
|
import { ProductsPage } from './pages/ProductsPage'
|
|
import { CategoriesPage } from './pages/CategoriesPage'
|
|
import { BrandsPage } from './pages/BrandsPage'
|
|
import { AddNewProductPage } from './pages/AddNewProductPage'
|
|
import { MyProductsPage } from './pages/MyProductsPage'
|
|
import { ProductDetailsPage } from './pages/ProductDetailsPage'
|
|
import { ProductSettingsPage } from './pages/ProductSettingsPage'
|
|
import { BusinessProfilePage } from './pages/BusinessProfilePage'
|
|
import { ProfilePage } from './pages/ProfilePage'
|
|
import { StorePage } from './pages/StorePage'
|
|
import { StoreItemsPage } from './pages/StoreItemsPage'
|
|
import { StoreSpecialsPage } from './pages/StoreSpecialsPage'
|
|
import { CustomersPage } from './pages/CustomersPage'
|
|
import { RollCallPage } from './pages/RollCallPage'
|
|
import { InvoicesPage } from './pages/InvoicesPage'
|
|
import { IssueInvoicePage } from './pages/IssueInvoicePage'
|
|
import { InvoiceTemplatesPage } from './pages/InvoiceTemplatesPage'
|
|
import { InvoiceTemplateEditorPage } from './pages/InvoiceTemplateEditorPage'
|
|
import { TransactionsPage } from './pages/TransactionsPage'
|
|
import { FinancePage } from './pages/FinancePage'
|
|
import { CustomerProductsPage } from './pages/CustomerProductsPage'
|
|
import { CustomerProductDetailsPage } from './pages/CustomerProductDetailsPage'
|
|
import { AddCustomerProductPage } from './pages/AddCustomerProductPage'
|
|
import { OrdersPage } from './pages/OrdersPage'
|
|
import { LoginPage } from './pages/LoginPage'
|
|
import { ShoppingCardsPage } from './pages/ShoppingCardsPage'
|
|
import { StoreSettingsPage } from './pages/StoreSettingsPage'
|
|
import { StoreShippingPage } from './pages/StoreShippingPage'
|
|
import { StoreInstallmentsPage } from './pages/StoreInstallmentsPage'
|
|
import { AddStoreInstallmentPage } from './pages/AddStoreInstallmentPage'
|
|
import { BlogPage } from './pages/BlogPage'
|
|
import { BlogListPage } from './pages/BlogListPage'
|
|
import { AddNewBlogPage } from './pages/AddNewBlogPage'
|
|
import { BlogCategoriesPage } from './pages/BlogCategoriesPage'
|
|
import { BlogSettingsPage } from './pages/BlogSettingsPage'
|
|
import { BlogDetailsPage } from './pages/BlogDetailsPage'
|
|
import { PortfoliosPage } from './pages/PortfoliosPage'
|
|
import { PortfolioListPage } from './pages/PortfolioListPage'
|
|
import { AddNewPortfolioPage } from './pages/AddNewPortfolioPage'
|
|
import { PortfolioCategoriesPage } from './pages/PortfolioCategoriesPage'
|
|
import { PortfolioSettingsPage } from './pages/PortfolioSettingsPage'
|
|
import { PortfolioDetailsPage } from './pages/PortfolioDetailsPage'
|
|
import { VideoPage } from './pages/VideoPage'
|
|
import { VideoListPage } from './pages/VideoListPage'
|
|
import { AddNewVideoPage } from './pages/AddNewVideoPage'
|
|
import { VideoCategoriesPage } from './pages/VideoCategoriesPage'
|
|
import { VideoSettingsPage } from './pages/VideoSettingsPage'
|
|
import { VideoDetailsPage } from './pages/VideoDetailsPage'
|
|
import { InstructionPage } from './pages/InstructionPage'
|
|
import { InstructionListPage } from './pages/InstructionListPage'
|
|
import { AddNewInstructionPage } from './pages/AddNewInstructionPage'
|
|
import { InstructionCategoriesPage } from './pages/InstructionCategoriesPage'
|
|
import { InstructionSettingsPage } from './pages/InstructionSettingsPage'
|
|
import { InstructionDetailsPage } from './pages/InstructionDetailsPage'
|
|
import { WorkshopPage } from './pages/WorkshopPage'
|
|
import { WorkshopListPage } from './pages/WorkshopListPage'
|
|
import { AddNewWorkshopPage } from './pages/AddNewWorkshopPage'
|
|
import { WorkshopCategoriesPage } from './pages/WorkshopCategoriesPage'
|
|
import { WorkshopDetailsPage } from './pages/WorkshopDetailsPage'
|
|
import { ContentPage } from './pages/ContentPage'
|
|
import { WebsitePage } from './pages/WebsitePage'
|
|
import { WebsiteContactPage } from './pages/WebsiteContactPage'
|
|
import { WebsiteSubscriptionsPage } from './pages/WebsiteSubscriptionsPage'
|
|
import { WebsiteFaqPage } from './pages/WebsiteFaqPage'
|
|
import { WebsiteBadgesPage } from './pages/WebsiteBadgesPage'
|
|
import { SettingsPage } from './pages/SettingsPage'
|
|
import { WebsiteStaticImagesPage } from './pages/WebsiteStaticImagesPage'
|
|
import { WebsiteSettingsPage } from './pages/WebsiteSettingsPage'
|
|
|
|
function App() {
|
|
return (
|
|
<BusinessDomainGuard>
|
|
<LocaleProvider>
|
|
<BusinessThemeProvider>
|
|
<BrowserRouter>
|
|
<TenantBrandingProvider>
|
|
<DashboardDocumentTitle />
|
|
<AuthProvider>
|
|
<ToastProvider>
|
|
<Routes>
|
|
<Route element={<GuestRoute />}>
|
|
<Route path="login" element={<LoginPage />} />
|
|
</Route>
|
|
|
|
<Route element={<ProtectedRoute />}>
|
|
<Route element={<PageLayout />}>
|
|
<Route index element={<HomePage />} />
|
|
<Route path="statistics" element={<StatisticsPage />} />
|
|
<Route path="profile" element={<ProfilePage />} />
|
|
<Route path="business-profile" element={<BusinessProfilePage />} />
|
|
<Route path="settings" element={<SettingsPage />} />
|
|
<Route path="products" element={<ProductsPage />} />
|
|
<Route path="products/categories" element={<CategoriesPage />} />
|
|
<Route path="products/brands" element={<BrandsPage />} />
|
|
<Route path="products/new" element={<AddNewProductPage />} />
|
|
<Route path="products/edit/:id" element={<AddNewProductPage />} />
|
|
<Route path="products/list" element={<MyProductsPage />} />
|
|
<Route path="products/detail/:id" element={<ProductDetailsPage />} />
|
|
<Route path="products/settings" element={<ProductSettingsPage />} />
|
|
<Route path="store" element={<StorePage />} />
|
|
<Route path="store/items" element={<StoreItemsPage />} />
|
|
<Route path="store/orders" element={<OrdersPage />} />
|
|
<Route path="store/shipping" element={<StoreShippingPage />} />
|
|
<Route path="store/cards" element={<ShoppingCardsPage />} />
|
|
<Route path="store/installments" element={<StoreInstallmentsPage />} />
|
|
<Route path="store/installments/new" element={<AddStoreInstallmentPage />} />
|
|
<Route path="store/installments/edit/:id" element={<AddStoreInstallmentPage />} />
|
|
<Route path="store/settings" element={<StoreSettingsPage />} />
|
|
<Route path="customers" element={<CustomersPage />} />
|
|
<Route path="roll-call" element={<RollCallPage />} />
|
|
<Route path="finance" element={<FinancePage />} />
|
|
<Route path="invoices" element={<InvoicesPage />} />
|
|
<Route path="invoices/new" element={<IssueInvoicePage />} />
|
|
<Route path="invoices/templates" element={<InvoiceTemplatesPage />} />
|
|
<Route path="invoices/templates/new" element={<InvoiceTemplateEditorPage />} />
|
|
<Route path="invoices/templates/:templateId" element={<InvoiceTemplateEditorPage />} />
|
|
<Route path="invoices/:invoiceId/edit" element={<IssueInvoicePage />} />
|
|
<Route path="transactions" element={<TransactionsPage />} />
|
|
<Route path="customer-products" element={<CustomerProductsPage />} />
|
|
<Route path="customer-products/new" element={<AddCustomerProductPage />} />
|
|
<Route path="customer-products/:id/edit" element={<AddCustomerProductPage />} />
|
|
<Route path="customer-products/:id" element={<CustomerProductDetailsPage />} />
|
|
<Route path="content" element={<ContentPage />} />
|
|
<Route path="blog" element={<BlogPage />} />
|
|
<Route path="blog/list" element={<BlogListPage />} />
|
|
<Route path="blog/detail/:id" element={<BlogDetailsPage />} />
|
|
<Route path="blog/new" element={<AddNewBlogPage />} />
|
|
<Route path="blog/edit/:id" element={<AddNewBlogPage />} />
|
|
<Route path="blog/categories" element={<BlogCategoriesPage />} />
|
|
<Route path="blog/settings" element={<BlogSettingsPage />} />
|
|
<Route path="portfolios" element={<PortfoliosPage />} />
|
|
<Route path="portfolios/list" element={<PortfolioListPage />} />
|
|
<Route path="portfolios/detail/:id" element={<PortfolioDetailsPage />} />
|
|
<Route path="portfolios/new" element={<AddNewPortfolioPage />} />
|
|
<Route path="portfolios/edit/:id" element={<AddNewPortfolioPage />} />
|
|
<Route path="portfolios/categories" element={<PortfolioCategoriesPage />} />
|
|
<Route path="portfolios/settings" element={<PortfolioSettingsPage />} />
|
|
<Route path="videos" element={<VideoPage />} />
|
|
<Route path="videos/list" element={<VideoListPage />} />
|
|
<Route path="videos/detail/:id" element={<VideoDetailsPage />} />
|
|
<Route path="videos/new" element={<AddNewVideoPage />} />
|
|
<Route path="videos/edit/:id" element={<AddNewVideoPage />} />
|
|
<Route path="videos/categories" element={<VideoCategoriesPage />} />
|
|
<Route path="videos/settings" element={<VideoSettingsPage />} />
|
|
<Route path="instructions" element={<InstructionPage />} />
|
|
<Route path="instructions/list" element={<InstructionListPage />} />
|
|
<Route path="instructions/detail/:id" element={<InstructionDetailsPage />} />
|
|
<Route path="instructions/new" element={<AddNewInstructionPage />} />
|
|
<Route path="instructions/edit/:id" element={<AddNewInstructionPage />} />
|
|
<Route path="instructions/categories" element={<InstructionCategoriesPage />} />
|
|
<Route path="instructions/settings" element={<InstructionSettingsPage />} />
|
|
<Route path="workshops" element={<WorkshopPage />} />
|
|
<Route path="workshops/list" element={<WorkshopListPage />} />
|
|
<Route path="workshops/detail/:id" element={<WorkshopDetailsPage />} />
|
|
<Route path="workshops/new" element={<AddNewWorkshopPage />} />
|
|
<Route path="workshops/edit/:id" element={<AddNewWorkshopPage />} />
|
|
<Route path="workshops/categories" element={<WorkshopCategoriesPage />} />
|
|
<Route path="website" element={<WebsitePage />} />
|
|
<Route path="website/static-images" element={<WebsiteStaticImagesPage />} />
|
|
<Route path="website/special-items" element={<StoreSpecialsPage />} />
|
|
<Route path="website/contact" element={<WebsiteContactPage />} />
|
|
<Route path="website/subscriptions" element={<WebsiteSubscriptionsPage />} />
|
|
<Route path="website/faq" element={<WebsiteFaqPage />} />
|
|
<Route path="website/badges" element={<WebsiteBadgesPage />} />
|
|
<Route path="website/settings" element={<WebsiteSettingsPage />} />
|
|
<Route path="website/e-payment" element={<Navigate to="/website/settings" replace />} />
|
|
</Route>
|
|
</Route>
|
|
</Routes>
|
|
</ToastProvider>
|
|
</AuthProvider>
|
|
</TenantBrandingProvider>
|
|
</BrowserRouter>
|
|
</BusinessThemeProvider>
|
|
</LocaleProvider>
|
|
</BusinessDomainGuard>
|
|
)
|
|
}
|
|
|
|
export default App
|