Frontend — Estado actual
Consolida y reemplaza
MIGRATION_PLAN.md,PRIMEREACT_MIGRATION_STATUS.md,FRONTEND_ANALYSIS_AND_MIGRATION_PLAN.md,API_ENDPOINTS_MAPPING.mdy este mismoREADME.md(todos eliminados tras esta consolidación). Verificado contra el código el 2026-07-13.Ver también el CLAUDE.md de este repo (migración de componentes legacy
components/ui/*ya documentada ahí) ysrc/components/features/dashboard/home/DASHBOARD.md(sistema de widgets del Home, doc vigente, no se toca).
Migración de API (NestJS legacy → serverless)
Sección titulada «Migración de API (NestJS legacy → serverless)»Completada. El frontend corre enteramente contra lade-infra (API Gateway + Lambda + DynamoDB). El repo lade-api (NestJS) es explícitamente legacy/deprecado (ver CLAUDE.md raíz). El mapeo endpoint-por-endpoint que documentaba esta transición (API_ENDPOINTS_MAPPING.md, 843 líneas) ya no tiene valor de referencia activa — describía una migración que ya terminó.
Migración PrimeReact → Design System
Sección titulada «Migración PrimeReact → Design System»~95% completada, verificado por grep de imports reales (no solo por lo que decían los docs anteriores, que en algunos puntos ya no coincidían con el código):
- Solo 2 archivos siguen importando de
primereacten todosrc/:core/wrappers/styles/ThemePrimeProvider.tsxycomponents/ui/Charts/providers/PrimeReactCharts.tsx. - Todo lo demás (Dialog/Modal, DataTable, Calendar, ConfirmDialog, Steps, Paginator, Card, Toast, Menu→Dropdown, Timeline, Tag) ya usa
@/design-systemoNotificationContext. primereactsigue enpackage.json— no se puede remover la dependencia todavía por el componente de Charts (verPROXIMOS_PASOS.md).
Design System
Sección titulada «Design System»23 componentes con Storybook en src/design-system/ (Avatar, Badge, Button, Combobox, Divider, Icon, IconButton, Input, Progress, Select, Spinner, Tag, ToggleGroup, Accordion, Table, Breadcrumb, Dropdown, Tabs, ConfirmDialog, Drawer, Loader, Modal, Toast). Ver CLAUDE.md de este repo para las reglas de import y los patrones de dark mode — no se duplica aquí.
Sesión 2026-07-13 — cambios de esta sesión
Sección titulada «Sesión 2026-07-13 — cambios de esta sesión»- Fix:
TripsStore.tsxya no hardcodeaphotoUrl/imageUrl/brand/modelen blanco — usa los campos reales que ahora manda el backend. - Fix: se removió el
markResourcesBusy()prematuro al crear un viaje (el bloqueo de conductor/vehículo ahora solo ocurre al pasar aEN_PROCESO, víaupdateTripStatus, que ya tenía la lógica correcta). - Nuevo: sistema de alertas —
alertService.ts,AlertStore.tsx, campanaAlertsBell.tsxen el Header con dropdown y contador de no leídas. - Nuevo: página
OperationsMap.tsx(/dashboard/operations/map, sección Operaciones del sidebar) — mapa con unidades en viaje, panel flotante al seleccionar. v0 sin GPS real, verdocs/features/mapa-operaciones.mden la raíz del workspace. - Nuevo:
CachedPolylineenLocationMap.tsx— dibuja el polyline ya calculado por el backend (Google Routes API) sin volver a llamar Directions/Routes al ver una ruta.RouteMap.tsxlo usa cuando la ruta tieneencodedPolyline, con fallback alDirectionsRendereren vivo para rutas antiguas. - Nuevo: resumen de distancia/duración/casetas visible en el detalle expandido de una ruta (
Routes.tsx).