"use client"; import { useState } from "react"; import { ESTADOS_PEDIDO, ESTADO_PEDIDO_ETIQUETA, type EstadoPedido, } from "@/lib/crm/constantes"; import { accionCambiarEstadoPedido } from "@/lib/crm/acciones"; import { AvisoAccion, usarAccion } from "@/components/admin/usarAccion"; /** * Cambio de estado del pedido. Cancelar pide confirmación explícita: es el * único estado del que no se sale sin explicar por qué. */ export function CambiarEstadoPedido({ id, estado, }: { id: string; estado: EstadoPedido; }) { const { enviando, aviso, ejecutar } = usarAccion(); const [elegido, setElegido] = useState(estado); const confirmandoCancelacion = elegido === "CANCELADO" && estado !== "CANCELADO"; function alCambiar(v: string) { const siguiente = v as EstadoPedido; setElegido(siguiente); if (siguiente === "CANCELADO") return; if (siguiente === estado) return; void ejecutar( () => accionCambiarEstadoPedido(id, siguiente), `Pedido en ${ESTADO_PEDIDO_ETIQUETA[siguiente].toLowerCase()}.`, ); } return (
{confirmandoCancelacion ? (

Cancelar el pedido lo saca del flujo de surtido. Confírmalo si es lo que quieres.

) : null}
); }