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
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 {
await ridesApi.close(ride!.id, values.meterend)
toast.add({ title: 'Ride closed', type: 'success' })
@@ -62,7 +68,7 @@ export function RideCloseDialog({ open, onClose, onSuccess, ride }: RideCloseDia
<DialogHeader>
<DialogTitle>Close Ride</DialogTitle>
<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>
</DialogHeader>
@@ -79,7 +85,7 @@ export function RideCloseDialog({ open, onClose, onSuccess, ride }: RideCloseDia
name={field.name}
ref={field.ref}
type="number"
min={0}
min={ride.meterstart}
value={Number(field.value as number)}
onChange={(e) => field.onChange(Number(e.target.value))}
onBlur={field.onBlur}