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 (
{t("unifi.wait")}
); } 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 (
{data.name}
{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, })}
); }