19 lines
643 B
TypeScript
19 lines
643 B
TypeScript
import { Vehicle } from "./api";
|
|
|
|
export function getVehicleDisplayStatus(vehicle: Vehicle): 'Online' | 'Offline' | 'Updating' | string {
|
|
// Calculate status: Offline if no heartbeat for 5s
|
|
let lastHeartbeatStr = vehicle.lastHeartbeat;
|
|
// Fix timezone if missing Z
|
|
if (!lastHeartbeatStr.endsWith('Z')) {
|
|
lastHeartbeatStr += 'Z';
|
|
}
|
|
const lastHeartbeatDate = new Date(lastHeartbeatStr);
|
|
const diffMs = Date.now() - lastHeartbeatDate.getTime();
|
|
|
|
let displayStatus = vehicle.status;
|
|
if (displayStatus === 'Online' && diffMs > 5000) {
|
|
displayStatus = 'Offline';
|
|
}
|
|
return displayStatus;
|
|
}
|