Validate ride close form
This commit is contained in:
@@ -46,6 +46,12 @@ export function RideCloseDialog({ open, onClose, onSuccess, ride }: RideCloseDia
|
|||||||
if (!ride) return null
|
if (!ride) return null
|
||||||
|
|
||||||
async function onSubmit(values: FormValues) {
|
async function onSubmit(values: FormValues) {
|
||||||
|
if (values.meterend < ride!.meterstart) {
|
||||||
|
form.setError('meterend', {
|
||||||
|
message: `Meter end cannot be less than meter start (${ride!.meterstart})`,
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
try {
|
try {
|
||||||
await ridesApi.close(ride!.id, values.meterend)
|
await ridesApi.close(ride!.id, values.meterend)
|
||||||
toast.add({ title: 'Ride closed', type: 'success' })
|
toast.add({ title: 'Ride closed', type: 'success' })
|
||||||
@@ -62,7 +68,7 @@ export function RideCloseDialog({ open, onClose, onSuccess, ride }: RideCloseDia
|
|||||||
<DialogHeader>
|
<DialogHeader>
|
||||||
<DialogTitle>Close Ride</DialogTitle>
|
<DialogTitle>Close Ride</DialogTitle>
|
||||||
<DialogDescription>
|
<DialogDescription>
|
||||||
Enter the final odometer reading to close this ride.
|
Enter the final odometer reading to close this ride. Must be at least {ride.meterstart} km (the starting reading).
|
||||||
</DialogDescription>
|
</DialogDescription>
|
||||||
</DialogHeader>
|
</DialogHeader>
|
||||||
|
|
||||||
@@ -79,7 +85,7 @@ export function RideCloseDialog({ open, onClose, onSuccess, ride }: RideCloseDia
|
|||||||
name={field.name}
|
name={field.name}
|
||||||
ref={field.ref}
|
ref={field.ref}
|
||||||
type="number"
|
type="number"
|
||||||
min={0}
|
min={ride.meterstart}
|
||||||
value={Number(field.value as number)}
|
value={Number(field.value as number)}
|
||||||
onChange={(e) => field.onChange(Number(e.target.value))}
|
onChange={(e) => field.onChange(Number(e.target.value))}
|
||||||
onBlur={field.onBlur}
|
onBlur={field.onBlur}
|
||||||
|
|||||||
Reference in New Issue
Block a user