Skip to content

Centralizar rutas, endpoints y componentes duplicados en frontend #36

@AIOjPINEDA

Description

@AIOjPINEDA

Objetivo

Reducir duplicación en el frontend consolidando rutas, endpoints, y componentes repetidos.

Contexto

Hallazgos F2.9, F2.10, F2.11 de spec 003. Tres áreas de duplicación en el frontend:

Rutas y endpoints hardcoded (F2.9)

Rutas como /dashboard, /patients/${id}, /encounters/${id}/edit están hardcodeadas en ~15 lugares. Endpoints de API duplicados en hooks y páginas.

LoadingSpinner (F2.10)

El spinner <div className="h-8 w-8 animate-spin..."> está duplicado en 4 páginas.

ApiError tipada (F2.11)

Los errores se lanzan como new Error(error.detail), perdiendo status code y endpoint.

Cambios requeridos

  1. Crear frontend/src/lib/navigation/routes.ts con constantes de rutas
  2. Crear frontend/src/lib/api/endpoints.ts con constantes de endpoints
  3. Crear frontend/src/components/ui/loading-spinner.tsx
  4. Crear clase ApiError en frontend/src/lib/api/client.ts
  5. Reemplazar usos hardcoded

Criterios de aceptación

  • Rutas y endpoints centralizados
  • LoadingSpinner reutilizable reemplaza las 4 instancias inline
  • ApiError preserva status code y endpoint
  • npm run type-check && npm run lint pasan

Verificación

cd frontend && npm run type-check && npm run lint && npm test

Referencia

  • docs/specs/003-refactor-plan/spec.md — F2.9, F2.10, F2.11

Metadata

Metadata

Assignees

Labels

priority:lowDeseable, sin deadlinetype:devexTooling, DX, productividad

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions