feat(l1): admin L1 category settings page + route + settings card
New owner-gated pages/account/L1CategoriesPage.tsx: checkbox list of available categories toggling enabled via l1Api.getCategories/setCategories, plus a read-only 'always excluded (safety)' hard-floor list. Registered lazy route /account/l1-categories (ProtectedRoute requiredRole=owner) and an 'L1 AI build categories' card in the AccountSettingsPage owner section. tsc -b + eslint clean. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -114,6 +114,7 @@ const IntegrationsPage = lazyWithRetry(() => import('@/pages/account/Integration
|
||||
const BrandingSettingsPage = lazyWithRetry(() => import('@/pages/account/BrandingSettingsPage'))
|
||||
const BillingPage = lazyWithRetry(() => import('@/pages/account/BillingPage'))
|
||||
const SelectPlanPage = lazyWithRetry(() => import('@/pages/account/SelectPlanPage'))
|
||||
const L1CategoriesPage = lazyWithRetry(() => import('@/pages/account/L1CategoriesPage'))
|
||||
|
||||
/** Wraps a lazy-loaded page with Suspense + ErrorBoundary */
|
||||
function page(Component: React.LazyExoticComponent<React.ComponentType>) {
|
||||
@@ -363,6 +364,14 @@ export const router = sentryCreateBrowserRouter([
|
||||
</ProtectedRoute>
|
||||
),
|
||||
},
|
||||
{
|
||||
path: 'l1-categories',
|
||||
element: (
|
||||
<ProtectedRoute requiredRole="owner">
|
||||
{page(L1CategoriesPage)}
|
||||
</ProtectedRoute>
|
||||
),
|
||||
},
|
||||
{
|
||||
path: 'chat-retention',
|
||||
element: (
|
||||
|
||||
Reference in New Issue
Block a user