feat: production hardening UI - tags page, onboarding wizard, pagination
- Tags management page: grid cards, rename/delete/merge modals, color-coded - Onboarding wizard: 4-step full-screen flow for new users (welcome, client, style, tour) - Client list pagination: page controls, page size selector, URL query params - Pipeline view unaffected (shows all clients) - Tags added to sidebar navigation - All components support dark mode
This commit is contained in:
@@ -23,6 +23,7 @@ const InvitePage = lazy(() => import('@/pages/InvitePage'));
|
||||
const ForgotPasswordPage = lazy(() => import('@/pages/ForgotPasswordPage'));
|
||||
const ResetPasswordPage = lazy(() => import('@/pages/ResetPasswordPage'));
|
||||
const AuditLogPage = lazy(() => import('@/pages/AuditLogPage'));
|
||||
const TagsPage = lazy(() => import('@/pages/TagsPage'));
|
||||
|
||||
function ProtectedRoute({ children }: { children: React.ReactNode }) {
|
||||
const { isAuthenticated, isLoading } = useAuthStore();
|
||||
@@ -76,6 +77,7 @@ export default function App() {
|
||||
<Route path="network" element={<PageErrorBoundary><NetworkPage /></PageErrorBoundary>} />
|
||||
<Route path="reports" element={<PageErrorBoundary><ReportsPage /></PageErrorBoundary>} />
|
||||
<Route path="templates" element={<PageErrorBoundary><TemplatesPage /></PageErrorBoundary>} />
|
||||
<Route path="tags" element={<PageErrorBoundary><TagsPage /></PageErrorBoundary>} />
|
||||
<Route path="segments" element={<PageErrorBoundary><SegmentsPage /></PageErrorBoundary>} />
|
||||
<Route path="settings" element={<PageErrorBoundary><SettingsPage /></PageErrorBoundary>} />
|
||||
<Route path="admin" element={<PageErrorBoundary><AdminPage /></PageErrorBoundary>} />
|
||||
|
||||
Reference in New Issue
Block a user