import React from "react";
import { LocalDateTimeString } from "../../utils/dates";
import { ValidateLocationByParam } from "../../utils/locations";
import useStyles from "../useStyles";
const UNKNOWN = "unknown";
const LOCKED = "Locked";
const UNLOCKED = "Unlocked";
const keyValueTemplate = (key, value) => (
{!battery && !doors && !location && !windows && !vcu0x260 && !charging_metrics && (
No vehicle data to display.
)}
{(battery || max_range) && (
Battery
{keyValueTemplate("Percentage", `${battery?.percent || 0}%`)}
{keyValueTemplate("Total Mileage", battery?.total_mileage_odometer || UNKNOWN)}
{keyValueTemplate("Max Range", max_range?.max_miles || UNKNOWN)}
)}
{(vcu0x260 || charging_metrics) && (
Charging
{keyValueTemplate("Charge Type", vcu0x260?.charge_type || UNKNOWN)}
{keyValueTemplate("Remaining Time", charging_metrics?.remaining_charging_time || UNKNOWN)}
)}
{doors && (
Doors
{Object.entries(doors).map(mapOpenCloseState)}
)}
{door_locks && (
Door Locks
{Object.entries(door_locks).map((value) => {
return keyValueTemplate(value[0], value[1] ? LOCKED : UNLOCKED);
})}
)}
{windows && (
Windows
{Object.entries(windows).map((value) => {
return windowState(value);
})}
)}
{misc_windows && (
Misc Windows
{Object.entries(misc_windows).map((value) => {
return windowState(value);
})}
)}
{sunroof && (
Sunroof
{Object.entries(sunroof).map((value) => {
return windowState(value);
})}
)}
{location && (
Location
{Object.entries(location).map((value) => {
if (ValidateLocationByParam(value[0], value[1]) === false) {
return keyValueTemplate(value[0], "Invalid")
}
if (value[0] === "altitude") {
return keyValueTemplate(value[0], value[1]);
} else {
return keyValueTemplate(value[0], `${value[1]}°`);
}
})}
)}
{trex_version && (
{keyValueTemplate("Trex Version", trex_version)}
)}
{ip && (
{keyValueTemplate("Trex IP", ip)}
)}
{updated != null && (
{keyValueTemplate("Updated At", LocalDateTimeString(updated))}
)}
{dbc_version != null && (
{keyValueTemplate("DBC Version", dbc_version)}
)}
);
};
export default DigitalTwin;