Files
Ota-dashboard/lib/utils.ts

19 lines
643 B
TypeScript
Raw Normal View History

2025-12-11 20:58:10 +01:00
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;
}