[debt] Frontend: metadata del scaffold, accesibilidad de componentes y dependencias #13

Open
opened 2026-10-02 18:37:14 +00:00 by Carlos · 0 comments
Member

Qué es la deuda

  • apps/web/src/app/layout.tsx:17 sigue con title: "Create Next App", y lang="en" aunque la UI está en español.
  • apps/web/src/app/_core/components/multi-select.tsx usa un id fijo ("multi-select-listbox"), así que dos instancias en la misma página chocan. El combobox no se navega con flechas y el contenedor es un div con onClick.
  • apps/web/src/app/_core/components/confirm-dialog.tsx:64 siempre muestra "Eliminando…" mientras procesa, aunque la acción no sea eliminar.
  • framer-motion (usado en 6 archivos) es el nombre anterior del paquete motion.
  • Payment.orderId y Payment.terminalId existen en el contrato pero no se usan.

Qué estamos pagando hoy

  • La pestaña del navegador dice "Create Next App".
  • Lectores de pantalla y corrector ortográfico tratan la UI como inglés.
  • El selector múltiple no se puede usar solo con teclado.
  • Campos sin uso en el contrato confunden sobre qué hace el sistema.

Arreglo propuesto

  • metadata con el nombre del producto y lang="es"
  • Id único con useId() en MultiSelect y navegación con flechas, o reemplazarlo por un componente de HeroUI
  • Prop pendingLabel en ConfirmDialog
  • Migrar framer-motion → motion (cambiar imports a motion/react)
  • Decidir si orderId / terminalId se van a usar (terminal de pago); si no, quitarlos del contrato

Techo de esta ronda

Arreglos puntuales de un PR chico. Fuera: auditoría completa de accesibilidad.

Superficie

Web (apps/web)

Módulos

Web / frontend, Base de datos / contrato Prisma

Esfuerzo

S — un PR chico

Riesgo de no tocarlo

Bajo

### Qué es la deuda - `apps/web/src/app/layout.tsx:17` sigue con `title: "Create Next App"`, y `lang="en"` aunque la UI está en español. - `apps/web/src/app/_core/components/multi-select.tsx` usa un id fijo (`"multi-select-listbox"`), así que dos instancias en la misma página chocan. El combobox no se navega con flechas y el contenedor es un `div` con `onClick`. - `apps/web/src/app/_core/components/confirm-dialog.tsx:64` siempre muestra "Eliminando…" mientras procesa, aunque la acción no sea eliminar. - `framer-motion` (usado en 6 archivos) es el nombre anterior del paquete `motion`. - `Payment.orderId` y `Payment.terminalId` existen en el contrato pero no se usan. ### Qué estamos pagando hoy - La pestaña del navegador dice "Create Next App". - Lectores de pantalla y corrector ortográfico tratan la UI como inglés. - El selector múltiple no se puede usar solo con teclado. - Campos sin uso en el contrato confunden sobre qué hace el sistema. ### Arreglo propuesto - [x] `metadata` con el nombre del producto y `lang="es"` - [x] Id único con `useId()` en `MultiSelect` y navegación con flechas, o reemplazarlo por un componente de HeroUI - [x] Prop `pendingLabel` en `ConfirmDialog` - [x] Migrar `framer-motion` → `motion` (cambiar imports a `motion/react`) - [x] Decidir si `orderId` / `terminalId` se van a usar (terminal de pago); si no, quitarlos del contrato ### Techo de esta ronda Arreglos puntuales de un PR chico. Fuera: auditoría completa de accesibilidad. ### Superficie Web (apps/web) ### Módulos Web / frontend, Base de datos / contrato Prisma ### Esfuerzo S — un PR chico ### Riesgo de no tocarlo Bajo
Miguel was assigned by Carlos 2026-10-02 20:05:09 +00:00
Miguel added reference refactor/13-web-scaffold-debt 2026-10-06 01:23:18 +00:00
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: RynextTechnologies/PDV#13