Files
sar/apps/web/src/lib/router.tsx
julian 356c8e3c2c feat(orders): fluxo de aprovação — approve/reject endpoints + UIs (C5)
PATCH /orders/:id/approve e /reject com alçada role-gated; OrderDetailPage
com modais de aprovação e recusa; ApprovalQueuePage para Sandra; badge de
pendências na Sidebar; DevLogin com 4 perfis (rep, supervisor, gerente).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-28 00:01:14 +00:00

89 lines
2.1 KiB
TypeScript

import { createRouter, createRootRoute, createRoute, Outlet } from '@tanstack/react-router';
import { AppShell } from '../components/layout/AppShell';
import { RafaelPainel } from '../cockpits/rafael/RafaelPainel';
import { ClientsPage } from '../cockpits/rafael/ClientsPage';
import { ClientDetailPage } from '../cockpits/rafael/ClientDetailPage';
import { OrdersPage } from '../cockpits/rafael/OrdersPage';
import { OrderDetailPage } from '../cockpits/rafael/OrderDetailPage';
import { NewOrderPage } from '../cockpits/rafael/NewOrderPage';
import { ApprovalQueuePage } from '../cockpits/sandra/ApprovalQueuePage';
const rootRoute = createRootRoute({
component: () => (
<AppShell>
<Outlet />
</AppShell>
),
});
const indexRoute = createRoute({
getParentRoute: () => rootRoute,
path: '/',
component: RafaelPainel,
});
const rafaelRoute = createRoute({
getParentRoute: () => rootRoute,
path: '/rep',
component: RafaelPainel,
});
const clientesRoute = createRoute({
getParentRoute: () => rootRoute,
path: '/clientes',
component: ClientsPage,
});
const clienteDetailRoute = createRoute({
getParentRoute: () => rootRoute,
path: '/clientes/$id',
component: ClientDetailPage,
});
const pedidosRoute = createRoute({
getParentRoute: () => rootRoute,
path: '/pedidos',
component: OrdersPage,
});
const novoOrderRoute = createRoute({
getParentRoute: () => rootRoute,
path: '/pedidos/novo',
component: NewOrderPage,
});
const pedidoDetailRoute = createRoute({
getParentRoute: () => rootRoute,
path: '/pedidos/$id',
component: OrderDetailPage,
});
const aprovacoes = createRoute({
getParentRoute: () => rootRoute,
path: '/aprovacoes',
component: ApprovalQueuePage,
});
const routeTree = rootRoute.addChildren([
indexRoute,
rafaelRoute,
clientesRoute,
clienteDetailRoute,
pedidosRoute,
novoOrderRoute,
pedidoDetailRoute,
aprovacoes,
]);
export const router = createRouter({
routeTree,
defaultPreload: 'intent',
defaultPreloadStaleTime: 0,
});
declare module '@tanstack/react-router' {
interface Register {
router: typeof router;
}
}