From c2535bec5e6063ca7c47a16f6e572cace333791e Mon Sep 17 00:00:00 2001 From: natib21 Date: Fri, 3 Jul 2026 14:14:35 +0000 Subject: [PATCH] fix --- .../src/components/fleet/FleetFormDialog.tsx | 14 +++++++------- .../backoffice/src/pages/fleet/config/drivers.ts | 6 +++--- .../backoffice/src/pages/fleet/config/resources.ts | 5 +++++ 3 files changed, 15 insertions(+), 10 deletions(-) diff --git a/apps/edr-freight-web/backoffice/src/components/fleet/FleetFormDialog.tsx b/apps/edr-freight-web/backoffice/src/components/fleet/FleetFormDialog.tsx index f07659dd8..f314ab35e 100644 --- a/apps/edr-freight-web/backoffice/src/components/fleet/FleetFormDialog.tsx +++ b/apps/edr-freight-web/backoffice/src/components/fleet/FleetFormDialog.tsx @@ -1,5 +1,5 @@ import { useEffect, useMemo, useState } from "react"; -import { Loader2, Calendar, ShieldCheck } from "lucide-react"; +import { Loader2, ShieldCheck } from "lucide-react"; import { Alert, Badge, @@ -14,7 +14,6 @@ import { Text, Textarea, TextInput, - ActionIcon, } from "@mantine/core"; import { @@ -238,6 +237,12 @@ const FleetFormDialog = ({ const date = new Date(stringValue + "T00:00:00Z"); if (isNaN(date.getTime())) { next[field.name] = `${field.label} is not a valid date`; + } else if (field.dateBound === "future") { + const startOfToday = new Date(); + startOfToday.setUTCHours(0, 0, 0, 0); + if (date <= startOfToday) { + next[field.name] = `${field.label} must be in the future`; + } } else if (date > new Date()) { next[field.name] = `${field.label} cannot be in the future`; } @@ -402,11 +407,6 @@ const FleetFormDialog = ({ error={error} disabled={isDisabled} description={field.description || "Select a date"} - rightSection={ - - - - } size="sm" radius="md" styles={{ diff --git a/apps/edr-freight-web/backoffice/src/pages/fleet/config/drivers.ts b/apps/edr-freight-web/backoffice/src/pages/fleet/config/drivers.ts index ec242906e..f240bda09 100644 --- a/apps/edr-freight-web/backoffice/src/pages/fleet/config/drivers.ts +++ b/apps/edr-freight-web/backoffice/src/pages/fleet/config/drivers.ts @@ -38,7 +38,7 @@ export const driversConfig: FleetResourceConfig = { faydaVerification: true, searchKeys: ["firstName", "lastName", "email", "phoneNumber", "licenseNumber", "status"], columns: [ - { id: "licenseNumber", header: "License Number", accessorKey: "licenseNumber", format: "code", size: 140 }, + { id: "licenseNumber", header: "Driver's License Number", accessorKey: "licenseNumber", format: "code", size: 180 }, { id: "firstName", header: "First Name", accessorKey: "firstName", format: "code", size: 120 }, { id: "lastName", header: "Last Name", accessorKey: "lastName", format: "code", size: 120 }, { id: "email", header: "Email", accessorKey: "email", format: "code", size: 180 }, @@ -49,14 +49,14 @@ export const driversConfig: FleetResourceConfig = { { id: "faydaVerified", header: "Fayda", accessorKey: "faydaVerified", format: "verifiedBadge", size: 90 }, ], formFields: [ - { name: "licenseNumber", label: "License Number", type: "text", required: true }, + { name: "licenseNumber", label: "Driver's License Number", type: "text", required: true }, { name: "firstName", label: "First Name", type: "text", required: true, faydaLocked: true }, { name: "lastName", label: "Last Name", type: "text", required: true, faydaLocked: true }, { name: "email", label: "Email", type: "email", required: true, faydaLocked: true }, { name: "phoneNumber", label: "Phone Number", type: "text", required: true, faydaLocked: true }, { name: "dateOfBirth", label: "Date of Birth", type: "date", required: true, faydaLocked: true }, { name: "gender", label: "Gender", type: "select", options: DRIVER_GENDER_OPTIONS, faydaLocked: true }, - { name: "licenseExpiryDate", label: "License Expiry Date", type: "date", required: true }, + { name: "licenseExpiryDate", label: "License Expiry Date", type: "date", required: true, dateBound: "future" }, { name: "status", label: "Status", type: "select", required: true, options: DRIVER_STATUS_OPTIONS }, { name: "vehicleTypesAuthorized", label: "Authorized Vehicle Types", type: "multiselect", options: VEHICLE_TYPE_OPTIONS }, { name: "address", label: "Address", type: "textarea" }, diff --git a/apps/edr-freight-web/backoffice/src/pages/fleet/config/resources.ts b/apps/edr-freight-web/backoffice/src/pages/fleet/config/resources.ts index 29a8795e7..0e7c9934d 100644 --- a/apps/edr-freight-web/backoffice/src/pages/fleet/config/resources.ts +++ b/apps/edr-freight-web/backoffice/src/pages/fleet/config/resources.ts @@ -45,6 +45,11 @@ export interface FleetFormFieldDef extends FormFieldDef { * never hand-edited. Rendered disabled in the form. */ faydaLocked?: boolean; + /** + * Direction a `date` field is constrained to. "future" = must be after today + * (e.g. a license expiry); "past" (default) = cannot be in the future. + */ + dateBound?: "past" | "future"; } export interface FleetListFilterDef {