import { Description, FieldGroup, Fieldset, Legend } from "@repo/rdx-ui/components"; import { Input, Label, Separator } from "@repo/shadcn-ui/components"; import { CalculatorIcon } from "lucide-react"; import { ComponentProps } from 'react'; import { Controller, useFormContext } from "react-hook-form"; import { useTranslation } from "../../i18n"; import { InvoiceFormData } from "../../schemas"; export const InvoiceTotals = (props: ComponentProps<"fieldset">) => { const { t } = useTranslation(); const { control, getValues } = useFormContext(); //const invoiceFormData = useWatch({ control }); /*const [invoice, setInvoice] = useState({ items: [], subtotal_amount: 0, discount_percentage: 0, discount_amount: 0, taxable_amount: 0, taxes_amount: 0, total_amount: 0, }); const updateDiscount = (value: number) => { const subtotal = getValues('items.reduce( (sum: number, item: any) => sum + item.subtotal_amount, 0 ); const discountAmount = (subtotal * value) / 100; const taxableAmount = subtotal - discountAmount; const taxesAmount = taxableAmount * 0.21; // Mock calculation const totalAmount = taxableAmount + taxesAmount; setInvoice({ ...invoice, subtotal_amount: subtotal, discount_percentage: value, discount_amount: discountAmount, taxable_amount: taxableAmount, taxes_amount: taxesAmount, total_amount: totalAmount, }); };*/ const formatCurrency = (amount: number) => { return new Intl.NumberFormat("es-ES", { style: "currency", currency: "EUR", minimumFractionDigits: 2, maximumFractionDigits: 2, }).format(amount); }; return (
{t("form_groups.totals.title")} {t("form_groups.totals.description")}
{formatCurrency(getValues('subtotal_amount'))}
()} />
-{formatCurrency(getValues("discount_amount"))}
{formatCurrency(getValues('taxable_amount'))}
{formatCurrency(getValues('taxes_amount'))}
{formatCurrency(getValues('total_amount'))}
); };