import { Button } from "@ui/ui-library/button"; import { Dialog, DialogBody, DialogCloseButton, DialogFooter, DialogHeader, } from "@ui/ui-library/dialog"; import { Modal } from "@ui/ui-library/modal"; import { PlusIcon } from "lucide-react"; import { Form } from "@ui/ui-library/form"; import { DateField, DateInput } from "@ui/ui-library/date-field"; import { FieldError, Input, Label } from "@ui/ui-library/field"; import { TextField, TextArea } from "@ui/ui-library/field"; import { useState } from "react"; import { CalendarDate } from "@internationalized/date"; import { calculateTotal } from "@ui/utils/helpers"; import { calculateTax } from "@ui/utils/helpers"; const now = new Date(); const defaultFormData = { client_email: "", date: new CalendarDate(now.getFullYear(), now.getMonth(), now.getDate()), due_date: new CalendarDate( now.getFullYear(), now.getMonth(), now.getDate() ).add({ days: 30 }), notes: "", terms: "", amount: 0, tax_rate: 20, }; export const CreateDevisModal = ({ handleCreate, dueDateError, setDueDateError, }: { handleCreate: (event: React.FormEvent) => void; dueDateError: string; setDueDateError: (error: string) => void; }) => { const [formData, setFormData] = useState(defaultFormData); const [isOpen, setIsOpen] = useState(false); return ( <>

Créer un nouveau devis

setDueDateError("")} > {dueDateError}
{(validationState) => { console.log(validationState); return validationState.validationErrors ? "Veuillez entrer une adresse email valide" : ""; }}
{ const amount = parseFloat(value) || 0; setFormData((prev) => ({ ...prev, amount, })); }} > {(validationState) => { return validationState.validationErrors ? "Veuillez entrer un montant valide" : ""; }} { const tax_rate = parseFloat(value) || 0; setFormData((prev) => ({ ...prev, tax_rate, })); }} > {(validationState) => { return validationState.validationErrors ? "Veuillez entrer un taux valide" : ""; }}
Montant HT {formData.amount.toFixed(2)} €
TVA ({formData.tax_rate}%) {calculateTax(formData.amount, formData.tax_rate).toFixed( 2 )}{" "} €
Total TTC {calculateTotal( formData.amount, calculateTax(formData.amount, formData.tax_rate) ).toFixed(2)}{" "} €