pull/2986/head
shamoon 3 months ago
parent 8704ff1040
commit d74034d95b

@ -1,41 +1,41 @@
import { useTranslation } from "next-i18next"; import { useTranslation } from "next-i18next";
import Block from "components/services/widget/block"; import Block from "components/services/widget/block";
import Container from "components/services/widget/container"; import Container from "components/services/widget/container";
import useWidgetAPI from "utils/proxy/use-widget-api"; import useWidgetAPI from "utils/proxy/use-widget-api";
export default function Component({ service }) { export default function Component({ service }) {
const { t } = useTranslation(); const { t } = useTranslation();
const { widget } = service; const { widget } = service;
const { data: resultData, error: resultError } = useWidgetAPI(widget); const { data: resultData, error: resultError } = useWidgetAPI(widget);
if (resultError) { if (resultError) {
return <Container service={service} error={resultError} />; return <Container service={service} error={resultError} />;
} }
if (!resultData) { if (!resultData) {
return ( return (
<Container service={service}> <Container service={service}>
<Block label="esphome.online" /> <Block label="esphome.online" />
<Block label="esphome.offline" /> <Block label="esphome.offline" />
<Block label="esphome.unknown" /> <Block label="esphome.unknown" />
<Block label="esphome.total" /> <Block label="esphome.total" />
</Container> </Container>
); );
} }
const total = Object.keys(resultData).length; const total = Object.keys(resultData).length;
const online = Object.entries(resultData).filter(([,v]) => v === true).length; const online = Object.entries(resultData).filter(([, v]) => v === true).length;
const offline = Object.entries(resultData).filter(([,v]) => v === false).length; const offline = Object.entries(resultData).filter(([, v]) => v === false).length;
const unknown = Object.entries(resultData).filter(([,v]) => v === null).length; const unknown = Object.entries(resultData).filter(([, v]) => v === null).length;
return ( return (
<Container service={service}> <Container service={service}>
<Block label="esphome.online" value={t("common.number", { value: online })} /> <Block label="esphome.online" value={t("common.number", { value: online })} />
<Block label="esphome.offline" value={t("common.number", { value: offline })} /> <Block label="esphome.offline" value={t("common.number", { value: offline })} />
<Block label="esphome.unknown" value={t("common.number", { value: unknown })} /> <Block label="esphome.unknown" value={t("common.number", { value: unknown })} />
<Block label="esphome.total" value={t("common.number", { value: total })} /> <Block label="esphome.total" value={t("common.number", { value: total })} />
</Container> </Container>
); );
} }

@ -1,8 +1,8 @@
import genericProxyHandler from "utils/proxy/handlers/generic"; import genericProxyHandler from "utils/proxy/handlers/generic";
const widget = { const widget = {
api: "{url}/ping", api: "{url}/ping",
proxyHandler: genericProxyHandler, proxyHandler: genericProxyHandler,
}; };
export default widget; export default widget;

Loading…
Cancel
Save