import { BiError, BiWifi, BiCheckCircle, BiXCircle } from "react-icons/bi";
import { MdSettingsEthernet } from "react-icons/md";
import { useTranslation } from "next-i18next";
import { SiUbiquiti } from "react-icons/si";
import useWidgetAPI from "utils/proxy/use-widget-api";
export default function Widget({ options }) {
const { t } = useTranslation();
// eslint-disable-next-line no-param-reassign
options.type = "unifi";
const { data: statsData, error: statsError } = useWidgetAPI(options, "stat/sites");
if (statsError || statsData?.error) {
return (
{t("widget.api_error")}
-
);
}
const defaultSite = statsData?.data?.find(s => s.name === "default");
if (!defaultSite) {
return (
);
}
const wan = defaultSite.health.find(h => h.subsystem === "wan");
const lan = defaultSite.health.find(h => h.subsystem === "lan");
const wlan = defaultSite.health.find(h => h.subsystem === "wlan");
const data = {
name: wan.gw_name,
uptime: wan["gw_system-stats"].uptime,
up: wan.status === 'ok',
wlan: {
users: wlan.num_user,
status: wlan.status
},
lan: {
users: lan.num_user,
status: lan.status
}
};
return (
{t("common.number", {
value: data.uptime / 86400,
maximumFractionDigits: 1,
})}
{t("unifi.days")}
{t("unifi.wan")}
{ data.up
?
:
}
{t("common.number", {
value: data.wlan.users,
maximumFractionDigits: 0,
})}
{t("common.number", {
value: data.lan.users,
maximumFractionDigits: 0,
})}
);
}