mirror of
https://github.com/Tria-plc/edr-platform.git
synced 2026-09-07 22:25:42 +00:00
fix
This commit is contained in:
@@ -27,6 +27,7 @@ import {
|
|||||||
} from "lucide-react";
|
} from "lucide-react";
|
||||||
|
|
||||||
import { driversService } from "@/services/drivers.service";
|
import { driversService } from "@/services/drivers.service";
|
||||||
|
import { vehiclesService } from "@/services/vehicles.service";
|
||||||
import { fleetHistoryService, type FleetHistoryEvent } from "@/services/fleet-history.service";
|
import { fleetHistoryService, type FleetHistoryEvent } from "@/services/fleet-history.service";
|
||||||
|
|
||||||
const fmtDate = (iso?: string | null) => {
|
const fmtDate = (iso?: string | null) => {
|
||||||
@@ -160,11 +161,31 @@ const useDriverHistory = (driverId: string) =>
|
|||||||
queryFn: () => fleetHistoryService.driver(driverId),
|
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 VehiclesTab = ({ driverId }: { driverId: string }) => {
|
||||||
const { data = [], isLoading } = useDriverHistory(driverId);
|
const { data = [], isLoading } = useDriverHistory(driverId);
|
||||||
|
const vmap = useVehicleMap();
|
||||||
const rows = data
|
const rows = data
|
||||||
.filter((e) => e.eventType === "DRIVER_ASSIGNED")
|
.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 />;
|
if (isLoading) return <Loading />;
|
||||||
return (
|
return (
|
||||||
<Stack gap={4}>
|
<Stack gap={4}>
|
||||||
@@ -214,6 +235,7 @@ const HistoryTab = ({ driverId }: { driverId: string }) => {
|
|||||||
|
|
||||||
const TripsTab = ({ driverId }: { driverId: string }) => {
|
const TripsTab = ({ driverId }: { driverId: string }) => {
|
||||||
const { data = [], isLoading } = useDriverHistory(driverId);
|
const { data = [], isLoading } = useDriverHistory(driverId);
|
||||||
|
const vmap = useVehicleMap();
|
||||||
const trips = useMemo(
|
const trips = useMemo(
|
||||||
() =>
|
() =>
|
||||||
data
|
data
|
||||||
@@ -222,11 +244,11 @@ const TripsTab = ({ driverId }: { driverId: string }) => {
|
|||||||
id: e.id,
|
id: e.id,
|
||||||
mile: meta(e, "mile") === "LAST" ? "Last-mile" : "First-mile",
|
mile: meta(e, "mile") === "LAST" ? "Last-mile" : "First-mile",
|
||||||
booking: meta(e, "bookingRef") ?? "—",
|
booking: meta(e, "bookingRef") ?? "—",
|
||||||
vehicle: meta(e, "vehiclePlate") ?? "—",
|
vehicle: meta(e, "vehiclePlate") || (e.vehicleId ? vmap.get(e.vehicleId) : null) || "—",
|
||||||
status: e.label ?? "—",
|
status: e.label ?? "—",
|
||||||
at: e.createdAt,
|
at: e.createdAt,
|
||||||
})),
|
})),
|
||||||
[data],
|
[data, vmap],
|
||||||
);
|
);
|
||||||
if (isLoading) return <Loading />;
|
if (isLoading) return <Loading />;
|
||||||
return (
|
return (
|
||||||
|
|||||||
Reference in New Issue
Block a user