T07b: frontend feature pages — companies + contacts + settings + audit + dashboard + search
- 11 new feature pages (CompaniesList/Detail/Form, ContactsList/Detail/Form, SettingsProfile/Roles/Users, AuditLog, GlobalSearchResults) - 3 page updates (Dashboard with StatCard+ActivityFeed, Settings with tree nav+Outlet, TopBar with SearchDropdown) - 13 new routes in routes/index.tsx - i18n updates (de.json + en.json) with companies/contacts/settings/audit/search keys - 12 new test files + 2 existing test fixes (TopBar, AppShell) - 7 shared components (DataGrid, Tabs, SearchDropdown, CsvImportDialog, StatCard, ActivityFeed, UnsavedChangesGuard) - 16 new API hooks in hooks.ts - Verification: 141 tests pass, build succeeds, tsc --noEmit clean
This commit is contained in:
@@ -6,7 +6,18 @@ import { LoginPage } from '@/pages/Login';
|
||||
import { PasswordResetRequestPage } from '@/pages/PasswordResetRequest';
|
||||
import { PasswordResetConfirmPage } from '@/pages/PasswordResetConfirm';
|
||||
import { DashboardPage } from '@/pages/Dashboard';
|
||||
import { CompaniesListPage } from '@/pages/CompaniesList';
|
||||
import { CompanyDetailPage } from '@/pages/CompanyDetail';
|
||||
import { CompanyFormPage } from '@/pages/CompanyForm';
|
||||
import { ContactsListPage } from '@/pages/ContactsList';
|
||||
import { ContactDetailPage } from '@/pages/ContactDetail';
|
||||
import { ContactFormPage } from '@/pages/ContactForm';
|
||||
import { AuditLogPage } from '@/pages/AuditLog';
|
||||
import { GlobalSearchResultsPage } from '@/pages/GlobalSearchResults';
|
||||
import { SettingsPage } from '@/pages/Settings';
|
||||
import { SettingsProfilePage } from '@/pages/SettingsProfile';
|
||||
import { SettingsRolesPage } from '@/pages/SettingsRoles';
|
||||
import { SettingsUsersPage } from '@/pages/SettingsUsers';
|
||||
|
||||
const router = createBrowserRouter([
|
||||
{
|
||||
@@ -28,9 +39,27 @@ const router = createBrowserRouter([
|
||||
</ProtectedRoute>
|
||||
),
|
||||
children: [
|
||||
{ path: '/dashboard', element: <DashboardPage /> },
|
||||
{ path: '/settings', element: <SettingsPage /> },
|
||||
{ path: '/', element: <DashboardPage /> },
|
||||
{ path: '/dashboard', element: <DashboardPage /> },
|
||||
{ path: '/companies', element: <CompaniesListPage /> },
|
||||
{ path: '/companies/new', element: <CompanyFormPage /> },
|
||||
{ path: '/companies/:id', element: <CompanyDetailPage /> },
|
||||
{ path: '/companies/:id/edit', element: <CompanyFormPage /> },
|
||||
{ path: '/contacts', element: <ContactsListPage /> },
|
||||
{ path: '/contacts/new', element: <ContactFormPage /> },
|
||||
{ path: '/contacts/:id', element: <ContactDetailPage /> },
|
||||
{ path: '/contacts/:id/edit', element: <ContactFormPage /> },
|
||||
{ path: '/audit-log', element: <AuditLogPage /> },
|
||||
{ path: '/search', element: <GlobalSearchResultsPage /> },
|
||||
{
|
||||
path: '/settings',
|
||||
element: <SettingsPage />,
|
||||
children: [
|
||||
{ path: 'profile', element: <SettingsProfilePage /> },
|
||||
{ path: 'roles', element: <SettingsRolesPage /> },
|
||||
{ path: 'users', element: <SettingsUsersPage /> },
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
]);
|
||||
|
||||
Reference in New Issue
Block a user