256 lines
7.1 KiB
JavaScript
256 lines
7.1 KiB
JavaScript
import React from 'react';
|
|
import { BrowserRouter as Router, Routes, Route, Navigate } from 'react-router-dom';
|
|
import { AuthProvider } from './context/AuthContext';
|
|
import { ToastProvider } from './components/Toast';
|
|
import ProtectedRoute from './components/ProtectedRoute';
|
|
import Layout from './components/Layout';
|
|
import CookieConsent from './components/CookieConsent';
|
|
import Login from './pages/Login';
|
|
import Dashboard from './pages/Dashboard';
|
|
import Accounts from './pages/Accounts';
|
|
import CostCenters from './pages/CostCenters';
|
|
import Categories from './pages/Categories';
|
|
import LiabilityAccounts from './pages/LiabilityAccounts';
|
|
import TransactionsByWeek from './pages/TransactionsByWeek';
|
|
import ImportTransactions from './pages/ImportTransactions';
|
|
import TransferDetection from './pages/TransferDetection';
|
|
import RefundDetection from './pages/RefundDetection';
|
|
import RecurringTransactions from './pages/RecurringTransactions';
|
|
import Business from './pages/Business';
|
|
import FinancialHealth from './pages/FinancialHealth';
|
|
import Goals from './pages/Goals';
|
|
import Budgets from './pages/Budgets';
|
|
import Reports from './pages/Reports';
|
|
import Preferences from './pages/Preferences';
|
|
import Profile from './pages/Profile';
|
|
import Pricing from './pages/Pricing';
|
|
import Billing from './pages/Billing';
|
|
import Users from './pages/Users';
|
|
import SiteSettings from './pages/SiteSettings';
|
|
|
|
function App() {
|
|
return (
|
|
<Router>
|
|
<AuthProvider>
|
|
<ToastProvider>
|
|
<Routes>
|
|
<Route path="/login" element={<Login />} />
|
|
<Route
|
|
path="/dashboard"
|
|
element={
|
|
<ProtectedRoute>
|
|
<Layout>
|
|
<Dashboard />
|
|
</Layout>
|
|
</ProtectedRoute>
|
|
}
|
|
/>
|
|
<Route
|
|
path="/accounts"
|
|
element={
|
|
<ProtectedRoute>
|
|
<Layout>
|
|
<Accounts />
|
|
</Layout>
|
|
</ProtectedRoute>
|
|
}
|
|
/>
|
|
<Route
|
|
path="/cost-centers"
|
|
element={
|
|
<ProtectedRoute>
|
|
<Layout>
|
|
<CostCenters />
|
|
</Layout>
|
|
</ProtectedRoute>
|
|
}
|
|
/>
|
|
<Route
|
|
path="/categories"
|
|
element={
|
|
<ProtectedRoute>
|
|
<Layout>
|
|
<Categories />
|
|
</Layout>
|
|
</ProtectedRoute>
|
|
}
|
|
/>
|
|
<Route
|
|
path="/liabilities"
|
|
element={
|
|
<ProtectedRoute>
|
|
<Layout>
|
|
<LiabilityAccounts />
|
|
</Layout>
|
|
</ProtectedRoute>
|
|
}
|
|
/>
|
|
<Route
|
|
path="/transactions"
|
|
element={
|
|
<ProtectedRoute>
|
|
<Layout>
|
|
<TransactionsByWeek />
|
|
</Layout>
|
|
</ProtectedRoute>
|
|
}
|
|
/>
|
|
<Route
|
|
path="/import"
|
|
element={
|
|
<ProtectedRoute>
|
|
<Layout>
|
|
<ImportTransactions />
|
|
</Layout>
|
|
</ProtectedRoute>
|
|
}
|
|
/>
|
|
<Route
|
|
path="/transfers"
|
|
element={
|
|
<ProtectedRoute>
|
|
<Layout>
|
|
<TransferDetection />
|
|
</Layout>
|
|
</ProtectedRoute>
|
|
}
|
|
/>
|
|
<Route
|
|
path="/refunds"
|
|
element={
|
|
<ProtectedRoute>
|
|
<Layout>
|
|
<RefundDetection />
|
|
</Layout>
|
|
</ProtectedRoute>
|
|
}
|
|
/>
|
|
<Route
|
|
path="/recurring"
|
|
element={
|
|
<ProtectedRoute>
|
|
<Layout>
|
|
<RecurringTransactions />
|
|
</Layout>
|
|
</ProtectedRoute>
|
|
}
|
|
/>
|
|
<Route
|
|
path="/business"
|
|
element={
|
|
<ProtectedRoute>
|
|
<Layout>
|
|
<Business />
|
|
</Layout>
|
|
</ProtectedRoute>
|
|
}
|
|
/>
|
|
<Route
|
|
path="/financial-health"
|
|
element={
|
|
<ProtectedRoute>
|
|
<Layout>
|
|
<FinancialHealth />
|
|
</Layout>
|
|
</ProtectedRoute>
|
|
}
|
|
/>
|
|
<Route
|
|
path="/goals"
|
|
element={
|
|
<ProtectedRoute>
|
|
<Layout>
|
|
<Goals />
|
|
</Layout>
|
|
</ProtectedRoute>
|
|
}
|
|
/>
|
|
<Route
|
|
path="/budgets"
|
|
element={
|
|
<ProtectedRoute>
|
|
<Layout>
|
|
<Budgets />
|
|
</Layout>
|
|
</ProtectedRoute>
|
|
}
|
|
/>
|
|
<Route
|
|
path="/reports"
|
|
element={
|
|
<ProtectedRoute>
|
|
<Layout>
|
|
<Reports />
|
|
</Layout>
|
|
</ProtectedRoute>
|
|
}
|
|
/>
|
|
<Route
|
|
path="/preferences"
|
|
element={
|
|
<ProtectedRoute>
|
|
<Layout>
|
|
<Preferences />
|
|
</Layout>
|
|
</ProtectedRoute>
|
|
}
|
|
/>
|
|
<Route
|
|
path="/profile"
|
|
element={
|
|
<ProtectedRoute>
|
|
<Layout>
|
|
<Profile />
|
|
</Layout>
|
|
</ProtectedRoute>
|
|
}
|
|
/>
|
|
<Route
|
|
path="/pricing"
|
|
element={
|
|
<Layout>
|
|
<Pricing />
|
|
</Layout>
|
|
}
|
|
/>
|
|
<Route
|
|
path="/billing"
|
|
element={
|
|
<ProtectedRoute>
|
|
<Layout>
|
|
<Billing />
|
|
</Layout>
|
|
</ProtectedRoute>
|
|
}
|
|
/>
|
|
<Route
|
|
path="/users"
|
|
element={
|
|
<ProtectedRoute>
|
|
<Layout>
|
|
<Users />
|
|
</Layout>
|
|
</ProtectedRoute>
|
|
}
|
|
/>
|
|
<Route
|
|
path="/site-settings"
|
|
element={
|
|
<ProtectedRoute>
|
|
<Layout>
|
|
<SiteSettings />
|
|
</Layout>
|
|
</ProtectedRoute>
|
|
}
|
|
/>
|
|
<Route path="/" element={<Navigate to="/dashboard" />} />
|
|
</Routes>
|
|
<CookieConsent />
|
|
</ToastProvider>
|
|
</AuthProvider>
|
|
</Router>
|
|
);
|
|
}
|
|
|
|
export default App;
|