import React, { useState, useEffect } from "react"; import { formatCurrency } from "../utils/formatters"; import NoData from "./NoData"; interface OrderItem { productId: number; description: string; package: string; color?: string; local: string; quantity: number; price: number; subTotal: number; } interface OrderItemsModalProps { isOpen: boolean; onClose: () => void; orderId: number; orderItems: OrderItem[]; } /** * OrderItemsModal Component * Modal para exibir os itens de um pedido * Segue o padrão de estilização do ConfirmDialog */ const OrderItemsModal: React.FC = ({ isOpen, onClose, orderId, orderItems, }) => { const [isAnimating, setIsAnimating] = useState(false); const [shouldRender, setShouldRender] = useState(false); 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 handleClose = () => { setIsAnimating(false); setTimeout(() => { onClose(); }, 300); }; return (
{/* Overlay */}
{/* Dialog */}
{/* Header */}

Itens do pedido {orderId.toString()}

Detalhes

{/* Content */}
{orderItems.length > 0 ? (
{[ "Código", "Descrição", "Embalagem", "Cor", "Ambiente", "P.Venda", "Qtde", "Valor Total", ].map((h) => ( ))} {orderItems.map((item, idx) => ( ))}
{h}
{item.productId} {item.description} {item.package} {item.color || "-"} {item.local} {formatCurrency(item.price)} {item.quantity.toFixed(3)} {formatCurrency(item.subTotal)}
) : (
)}
{/* Actions */}
); }; export default OrderItemsModal;