import { Description, FieldGroup, Fieldset, Legend } from "@repo/rdx-ui/components"; import { Badge } from "@repo/shadcn-ui/components"; import { ReceiptIcon } from "lucide-react"; import { useFormContext, useWatch } from "react-hook-form"; import { useTranslation } from "../../i18n"; import { CustomerInvoiceFormData } from "../../schemas"; export const InvoiceTaxSummary = () => { const { t } = useTranslation(); const { control } = useFormContext(); const taxes = useWatch({ control, name: "taxes", defaultValue: [], }); const formatCurrency = (amount: { value: string; scale: string; currency_code: string; }) => { const { currency_code, value, scale } = amount; return new Intl.NumberFormat("es-ES", { style: "currency", currency: currency_code, minimumFractionDigits: Number(scale), maximumFractionDigits: Number(scale), compactDisplay: "short", currencyDisplay: "symbol", }).format(Number(value) / 10 ** Number(scale)); }; // Mock tax data const mockTaxes = [ { tax_code: "IVA 21%", taxable_amount: { value: "10000", scale: "2", currency_code: "EUR", }, taxes_amount: { value: "21000", scale: "2", currency_code: "EUR", }, }, { tax_code: "IVA 10%", taxable_amount: { value: "50000", scale: "2", currency_code: "EUR", }, taxes_amount: { value: "5000", scale: "2", currency_code: "EUR", }, }, ]; const displayTaxes = taxes ? taxes : mockTaxes; return (
{t("form_groups.tax_resume.title")} {t("form_groups.tax_resume.description")}
{displayTaxes.map((tax, index) => (
{tax.tax_code}
Base Imponible: {formatCurrency(tax.taxable_amount)}
Importe Impuesto: {formatCurrency(tax.taxes_amount)}
))} {displayTaxes.length === 0 && (

No hay impuestos aplicados

)}
); };