diff --git a/src/web/src/features/rubros/components/MoveRubroDialog.tsx b/src/web/src/features/rubros/components/MoveRubroDialog.tsx index bd05c93..2e3652b 100644 --- a/src/web/src/features/rubros/components/MoveRubroDialog.tsx +++ b/src/web/src/features/rubros/components/MoveRubroDialog.tsx @@ -77,13 +77,14 @@ const moveRubroSchema = z.object({ .pipe(z.number().int().min(0, 'El orden debe ser 0 o mayor')), }) -// Raw form field types (what useForm sees before zod transforms) +// Raw form field types (what useForm sees — strings before zod transforms). type MoveRubroFormRaw = { nuevoParentId: string nuevoOrden: string } -// Output type after zod transforms +// Output type after zod transforms run (what handleSubmit receives at runtime +// thanks to zodResolver). We type-cast to reconcile with SubmitHandler. type MoveRubroFormOutput = { nuevoParentId: number | null nuevoOrden: number @@ -152,8 +153,7 @@ export function MoveRubroDialog({ if (!rubro) return setBackendError(null) - const nuevoParentId = data.nuevoParentId - const nuevoOrden = data.nuevoOrden + const { nuevoParentId, nuevoOrden } = data try { await mutateAsync({ id: rubro.id, data: { nuevoParentId, nuevoOrden } }) @@ -183,7 +183,13 @@ export function MoveRubroDialog({
- + [0], + )} + className="space-y-4" + noValidate + > {backendError && (