import * as React from "react"; import { DiagnosticMessages } from "../../constants"; import { Col, Row, docLink } from "../../ui/index"; import { bitArray } from "../../util"; import { TRUTH_TABLE } from "./truth_table"; import { t } from "../../i18next_wrapper"; export type DiagnosisName = | "userAPI" | "userMQTT" | "botMQTT" | "botAPI" | "botFirmware"; export type DiagnosisProps = Record; export const diagnosisStatus = (props: DiagnosisProps): boolean => props.userMQTT && props.botAPI && props.botMQTT && props.botFirmware; export const DiagnosisSaucer = (props: DiagnosisProps) => { const diagnosisBoolean = diagnosisStatus(props); const diagnosisColor = diagnosisBoolean ? "green" : "red"; const title = diagnosisBoolean ? t("Ok") : t("Error"); return
; }; export function Diagnosis(props: DiagnosisProps) { const diagnosisBoolean = diagnosisStatus(props); const diagnosisColor = diagnosisBoolean ? "green" : "red"; return

{t("Diagnosis")}

{t("Always")}  {t("upgrade FarmBot OS")}  {t("before troubleshooting.")}

{diagnose(props)}

{t("Click here to learn more about error codes.")}
; } export function diagnose(x: DiagnosisProps) { const errorCode = bitArray( x.userAPI, x.userMQTT, x.botMQTT, x.botAPI, x.botFirmware); const errMsg = TRUTH_TABLE[errorCode] || DiagnosticMessages.MISC; return `${t(errMsg)} (code ${errorCode})`; }