import React, { useState, useEffect } from "react"; import { Button } from "./ui/button"; interface PrintOrderDialogProps { isOpen: boolean; onClose: () => void; onConfirm: (model: "A" | "B" | "P") => void; orderId: number; includeModelP?: boolean; } /** * PrintOrderDialog Component * Diálogo para seleção do modelo de impressão do pedido * Segue o padrão de estilização do ConfirmDialog */ const PrintOrderDialog: React.FC = ({ isOpen, onClose, onConfirm, orderId, includeModelP = false, }) => { const [isAnimating, setIsAnimating] = useState(false); const [shouldRender, setShouldRender] = useState(false); const [selectedModel, setSelectedModel] = useState<"A" | "B" | "P">("A"); useEffect(() => { if (isOpen) { setShouldRender(true); setTimeout(() => setIsAnimating(true), 10); } else { setIsAnimating(false); const timer = setTimeout(() => setShouldRender(false), 300); return () => clearTimeout(timer); } }, [isOpen]); if (!shouldRender) return null; const handleConfirm = () => { setIsAnimating(false); setTimeout(() => { onConfirm(selectedModel); onClose(); }, 300); }; const handleCancel = () => { setIsAnimating(false); setTimeout(() => { onClose(); }, 300); }; return (
{/* Overlay */}
{/* Dialog */}
{/* Header */}

{includeModelP ? "Selecione o modelo de orçamento" : "Selecione o modelo de pedido"}

Impressão

{/* Content */}
{includeModelP && ( )}
{/* Actions */}
); }; export default PrintOrderDialog;