diff --git a/pages/booking/[uuid]/bill.tsx b/pages/booking/[uuid]/bill.tsx index c2209c2..6bc0279 100644 --- a/pages/booking/[uuid]/bill.tsx +++ b/pages/booking/[uuid]/bill.tsx @@ -107,6 +107,8 @@ export default function BillPage({ booking.bill?.rate || MILAGE_RATES.EXTERN_LTE_200 ) const [status, setStatus] = useState(booking.bill?.status) + const [storingInProgress, setStoringInProgress] = useState(false) + const [storingError, setStoringError] = useState(null) const milage = (0 < milageStart && milageStart < milageEnd && milageEnd - milageStart) || 0 const total = @@ -118,16 +120,25 @@ export default function BillPage({ const onSubmit = async (event: React.FormEvent) => { event.preventDefault() - const bill = await saveBill(booking, { - milageStart, - milageEnd, - milage, - rate, - status, - }) + setStoringInProgress(true) + setStoringError(null) - booking.bill = bill - setBooking(booking) + try { + const bill = await saveBill(booking, { + milageStart, + milageEnd, + milage, + rate, + status, + }) + + booking.bill = bill + setBooking(booking) + } catch (error) { + setStoringError(error.toString()) + console.error('Failed to store booking', error) + } + setStoringInProgress(false) } return ( @@ -235,7 +246,14 @@ export default function BillPage({ -