Validate ride close form

This commit is contained in:
2026-09-03 13:31:33 +05:30
parent 1357f7e3f8
commit 63115f18b4
@@ -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}