Files
mercadodevida/work/artifacts/F-134/implementer.md
2026-08-21 18:47:00 +02:00

1.8 KiB

F-134 — Permitir edición de precio/stock/EAN/peso en estado pending

Cambios

apps/admin/src/features/products/components/sections/PriceStockSection.tsx

  • Removido pending del prop disabled de los 4 inputs editables:

    • Stock input: disabled={savingStock || pending}disabled={savingStock}
    • EAN input: disabled={savingEan || pending}disabled={savingEan}
    • Peso unitario (Gr): disabled={savingProductMeta || pending}disabled={savingProductMeta}
    • Compra mínima: disabled={savingProductMeta || pending}disabled={savingProductMeta}
  • Los botones Guardar precio siguen disabled cuando pending (disabled={savingPrice || pending}) — no se puede forzar la persistencia sin productId.

  • Los handlers saveStock, saveEan, saveProductMeta ya hacían early return cuando pending || !productId, así que aunque el input ya no esté disabled, las llamadas API no se disparan hasta que existe productId.

Comportamiento resultante

Modo pending (/products/new, sin productId)

  • Inputs PVP / Coste / Oferta / Neto / Stock / EAN / Peso unitario / Compra mínima: editables
  • Botón "Guardar precio": disabled, caption "Se guardará al crear el producto" sigue mostrándose
  • onBlur / Enter: handlers early-return sin llamar API
  • Estado local se mantiene

Modo edit (/products/:id, con productId)

  • Todos los inputs editables
  • Botones Guardar habilitados
  • onBlur / Enter disparan API como antes
  • Sin cambios respecto a F-123

Verificación

  • cd apps/admin && npx tsc --noEmit → exit 0.
  • cd apps/admin && NEXT_PUBLIC_API_URL=http://192.168.18.93:3000 npm run build → exit 0.

Notas

  • Sin cambios en backend ni en handlers de save.
  • Operador reinicia admin (./scripts/monolith.sh prod restart) para desplegar.