Commit of Current Status
This commit is contained in:
18
lib/utils.ts
Normal file
18
lib/utils.ts
Normal file
@@ -0,0 +1,18 @@
|
||||
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;
|
||||
}
|
||||
Reference in New Issue
Block a user