import { useState } from 'react'; import { Button, Dialog, DialogActions, DialogContent, DialogTitle, Stack, TextField } from '@mui/material'; import { useCreateTaxCode } from '../../../hooks/useTaxCodes'; export function TaxCodeDialog({ open, onClose }: { open: boolean; onClose: () => void }) { const createTaxCode = useCreateTaxCode(); const [code, setCode] = useState(''); const [name, setName] = useState(''); const [ratePercent, setRatePercent] = useState(''); const [error, setError] = useState(null); const handleSubmit = async () => { setError(null); try { await createTaxCode.mutateAsync({ code, name, ratePercent: Number(ratePercent) }); onClose(); setCode(''); setName(''); setRatePercent(''); } catch (err) { setError(err instanceof Error ? err.message : 'Failed to create tax code'); } }; return ( New Tax Code setCode(e.target.value.toUpperCase())} helperText="e.g. STD, ZERO" /> setName(e.target.value)} /> setRatePercent(e.target.value)} slotProps={{ htmlInput: { min: 0, max: 100, step: '0.001' } }} /> {error && {error}} ); }