From db37b76a6ea1592d27664279e344c0db51c41be3 Mon Sep 17 00:00:00 2001 From: Thomas Ruoff Date: Wed, 7 Oct 2020 22:35:54 +0200 Subject: [PATCH] add error handling on saving bill --- pages/booking/[uuid]/bill.tsx | 38 ++++++++++++++++++++++++++--------- 1 file changed, 28 insertions(+), 10 deletions(-) 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({ -