- Updated "Ficha del proyecto UECKO.md" to clarify architectural boundaries and continuity rules. - Revised "README.md" to enhance structure and clarify sources of truth for documentation. - Improved "backend.md" with clearer definitions of responsibilities and architectural layers. - Streamlined "convenciones.md" to emphasize naming conventions and TypeScript best practices. - Enhanced "datos-persistencia.md" to specify persistence rules and data integrity measures. - Updated "frontend.md" to define frontend rules and state management practices. - Refined "testing.md" to clarify testing levels and validation processes. - Revised "vision-general.md" to outline system architecture and module boundaries more clearly.
20 lines
1.3 KiB
Markdown
20 lines
1.3 KiB
Markdown
# Arquitectura frontend
|
|
|
|
## Objetivo
|
|
|
|
Definir las reglas de frontend. React, TanStack Query, TanStack Table, React Hook Form, Zod, shadcn/ui y Tailwind son tecnologías objetivo documentadas; este documento no afirma su instalación efectiva.
|
|
|
|
## Estado y datos remotos
|
|
|
|
Las operaciones de servidor permanecen en TanStack Query. No duplicar estado remoto en estado local sin necesidad; las query keys siguen la convención existente y, tras mutaciones, la caché se invalida o actualiza explícitamente. No introducir efectos para derivar durante render estado que pueda calcularse directamente.
|
|
|
|
## Formularios y componentes
|
|
|
|
Los formularios usan React Hook Form y Zod conforme a los patrones existentes. Los componentes evitan responsabilidad monolítica: se extraen responsabilidades cuando exista una frontera semántica clara, no para ocultar JSX trivial. Usar shadcn/ui y Tailwind según los patrones del área.
|
|
|
|
## UI, accesibilidad e internacionalización
|
|
|
|
La interfaz contempla estados `disabled`, `loading`, `empty` y `error`, conserva acciones no disponibles deshabilitadas cuando la UX requiera mostrarlas y preserva comportamiento responsive y accesibilidad.
|
|
|
|
Los textos visibles se mantienen en `es` y `en` cuando el área use i18n; no se insertan directamente en ese caso. Las columnas monetarias usan `tabular-nums` cuando corresponda.
|