mirror of
https://github.com/Tria-plc/edr-platform.git
synced 2026-08-27 00:52:50 +00:00
fix
This commit is contained in:
@@ -27,6 +27,7 @@ import {
|
||||
} from "lucide-react";
|
||||
|
||||
import { driversService } from "@/services/drivers.service";
|
||||
import { vehiclesService } from "@/services/vehicles.service";
|
||||
import { fleetHistoryService, type FleetHistoryEvent } from "@/services/fleet-history.service";
|
||||
|
||||
const fmtDate = (iso?: string | null) => {
|
||||
@@ -160,11 +161,31 @@ const useDriverHistory = (driverId: string) =>
|
||||
queryFn: () => fleetHistoryService.driver(driverId),
|
||||
});
|
||||
|
||||
/** id → "code · plate" map so events without a stored plate still show a name. */
|
||||
const useVehicleMap = () => {
|
||||
const { data } = useQuery({
|
||||
queryKey: ["vehicles-all"],
|
||||
queryFn: () => vehiclesService.getAll({}).then((r) => r.data),
|
||||
});
|
||||
return useMemo(() => {
|
||||
const m = new Map<string, string>();
|
||||
for (const v of data ?? []) {
|
||||
m.set(v.id, [v.code, v.plateNumber].filter(Boolean).join(" · ") || v.id);
|
||||
}
|
||||
return m;
|
||||
}, [data]);
|
||||
};
|
||||
|
||||
const VehiclesTab = ({ driverId }: { driverId: string }) => {
|
||||
const { data = [], isLoading } = useDriverHistory(driverId);
|
||||
const vmap = useVehicleMap();
|
||||
const rows = data
|
||||
.filter((e) => e.eventType === "DRIVER_ASSIGNED")
|
||||
.map((e) => ({ id: e.id, plate: meta(e, "vehiclePlate") || e.vehicleId || "Vehicle", at: e.createdAt }));
|
||||
.map((e) => ({
|
||||
id: e.id,
|
||||
plate: meta(e, "vehiclePlate") || (e.vehicleId ? vmap.get(e.vehicleId) : null) || "Vehicle",
|
||||
at: e.createdAt,
|
||||
}));
|
||||
if (isLoading) return <Loading />;
|
||||
return (
|
||||
<Stack gap={4}>
|
||||
@@ -214,6 +235,7 @@ const HistoryTab = ({ driverId }: { driverId: string }) => {
|
||||
|
||||
const TripsTab = ({ driverId }: { driverId: string }) => {
|
||||
const { data = [], isLoading } = useDriverHistory(driverId);
|
||||
const vmap = useVehicleMap();
|
||||
const trips = useMemo(
|
||||
() =>
|
||||
data
|
||||
@@ -222,11 +244,11 @@ const TripsTab = ({ driverId }: { driverId: string }) => {
|
||||
id: e.id,
|
||||
mile: meta(e, "mile") === "LAST" ? "Last-mile" : "First-mile",
|
||||
booking: meta(e, "bookingRef") ?? "—",
|
||||
vehicle: meta(e, "vehiclePlate") ?? "—",
|
||||
vehicle: meta(e, "vehiclePlate") || (e.vehicleId ? vmap.get(e.vehicleId) : null) || "—",
|
||||
status: e.label ?? "—",
|
||||
at: e.createdAt,
|
||||
})),
|
||||
[data],
|
||||
[data, vmap],
|
||||
);
|
||||
if (isLoading) return <Loading />;
|
||||
return (
|
||||
|
||||
Reference in New Issue
Block a user