feat(F-121): completed feature

This commit is contained in:
chattie
2026-08-21 15:35:51 +02:00
parent a5538fc8f0
commit a40d78d1d9
9 changed files with 125 additions and 32 deletions

View File

@@ -0,0 +1,26 @@
# F-121 — Quitar restricción "Guarda primero" en precio/stock/EAN
## Cambios
- `apps/admin/src/features/products/components/ProductEditor.tsx`:
- `ProductEditor` ahora maneja `productId` como state interno que se inicializa desde la prop.
- Tras `POST /products` exitoso, en lugar de `router.push('/products/${id}')` (navegación completa), se usa `setProductId(saved.id)` + `router.replace(...)`.
- El componente no se desmonta: react re-renderiza con `productId` real, lo que hace que los `useEffect` de `PriceStockSection` e `ImagesSection` se ejecuten y carguen los datos.
- El usuario no ve pantalla en blanco ni pierde el state del formulario.
## UX resultante
1. El usuario entra a `/products/new`.
2. Rellena nombre (slug se autogenéra).
3. Pulsa "Guardar cambios".
4. Aparece un toast verde y se desbloquean las secciones Precio/Stock/EAN/Peso/Imágenes.
5. El usuario sigue rellenando precio, stock, EAN, peso, etc.
6. Pulsa "Guardar cambios" otra vez — esta vez se hace `PATCH /products/:id` (no create).
## Evidencia
- `apps/admin tsc --noEmit` OK.
- `apps/admin build` OK.
- El nombre del producto se persiste en la creación (auto-crea la variante `SKU-MV-{id}`).
- `setProductId` cambia el prop reactivamente, lo que dispara el `useEffect` de `PriceStockSection`.
## Notas
- No se cambia nada del backend. El patrón de "crear variante con `SKU-MV-{id}`" ya existe.
- El usuario sigue el modelo de "una sola variante por producto". No se reintroducen múltiples.