dashboard design

This commit is contained in:
2026-09-29 12:08:54 +05:30
parent 7dac429a1a
commit bd90a3d68e
8 changed files with 714 additions and 14 deletions
@@ -34,7 +34,7 @@ import type { VehicleResponse, DriverProfileResponse } from '@/types/api'
const schema = z.object({
vehicleId: z.string().min(1, 'Vehicle is required'),
driverProfileId: z.string().min(1, 'Driver is required'),
meterstart: z.number().min(0, 'Meter start must be 0 or more'),
meterstart: z.number().min(0, 'Meter start must be 0 or more').optional(),
})
type FormValues = z.infer<typeof schema>
@@ -54,7 +54,7 @@ export function RideSheet({ open, onClose, onSuccess }: RideSheetProps) {
defaultValues: {
vehicleId: '',
driverProfileId: '',
meterstart: 0,
meterstart: undefined,
},
})
@@ -64,7 +64,7 @@ export function RideSheet({ open, onClose, onSuccess }: RideSheetProps) {
form.reset({
vehicleId: '',
driverProfileId: '',
meterstart: 0,
meterstart: undefined,
})
Promise.all([
@@ -82,7 +82,7 @@ export function RideSheet({ open, onClose, onSuccess }: RideSheetProps) {
async function onSubmit(values: FormValues) {
try {
await ridesApi.create(values)
await ridesApi.create({ ...values, meterstart: values.meterstart ?? 0 })
toast.add({ title: 'Ride created', type: 'success' })
onSuccess()
onClose()
@@ -149,7 +149,6 @@ export function RideSheet({ open, onClose, onSuccess }: RideSheetProps) {
control={form.control}
name="meterstart"
label="Meter Start (km)"
required
render={({ field, invalid }) => (
<Input
id="meterstart"
@@ -157,8 +156,8 @@ export function RideSheet({ open, onClose, onSuccess }: RideSheetProps) {
ref={field.ref}
type="number"
min={0}
value={Number(field.value as number)}
onChange={(e) => field.onChange(Number(e.target.value))}
value={field.value === undefined ? '' : Number(field.value as number)}
onChange={(e) => field.onChange(e.target.value === '' ? undefined : Number(e.target.value))}
onBlur={field.onBlur}
placeholder="0"
aria-invalid={invalid}