import React from "react";
import { LocalDateTimeString } from "../../utils/dates";
import { ValidateLocationByParam } from "../../utils/locations";
import useStyles from "../useStyles";
const keyValueTemplate = (key, value) => (
{!battery && !doors && !location && !windows && (
No vehicle data to display.
)}
{battery != null && keyValueTemplate("Battery", `${battery.percent}%`)}
{doors != null && (
Doors
{Object.entries(doors).map(mapOpenCloseState)}
)}
{door_locks != null && (
Door Locks
{Object.entries(door_locks).map((value) => {
if (value[0] === "driver") {
return keyValueTemplate(value[0], value[1] ? "Open" : "Closed");
} else {
return keyValueTemplate(value[0], value[1] ? "Unlocked" : "Locked");
}
})}
)}
{windows != null && (
Windows
{Object.entries(windows).map((value) => {
if (value[1] === 0) {
return keyValueTemplate(value[0], "closed");
} else {
const percentOpen = Math.min(value[1], 100);
return keyValueTemplate(value[0], `${percentOpen}% open`);
}
})}
)}
{misc_windows != null && (
Misc Windows
{Object.entries(misc_windows).map((value) => {
if (value[1] === 0 || value[1] > 100) {
return keyValueTemplate(value[0], `closed ${value[1]}%`);
} else {
return keyValueTemplate(value[0], `${value[1]}% open`);
}
})}
)}
{sunroof != null && (
Sunroof
{Object.entries(sunroof).map((value) => {
if (value[1] === 0) {
return keyValueTemplate(value[0], "closed");
} else {
const percentOpen = Math.min(value[1], 100);
return keyValueTemplate(value[0], `${percentOpen}% open`);
}
})}
)}
{location != null && (
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;