import { useTranslation } from "next-i18next"; import Container from "components/services/widget/container"; import Block from "components/services/widget/block"; import useWidgetAPI from "utils/proxy/use-widget-api"; const MAX_ALLOWED_FIELDS = 4; export const technitiumDefaultFields = ["totalQueries", "totalAuthoritative", "totalCached", "totalServerFailure"]; export default function Component({ service }) { const { t } = useTranslation(); const { widget } = service; const params = { type: widget.range ?? "LastHour", }; const { data: statsData, error: statsError } = useWidgetAPI(widget, "stats", params); // Default fields if (!widget.fields?.length > 0) { widget.fields = technitiumDefaultFields; } // Limits max number of displayed fields if (widget.fields?.length > MAX_ALLOWED_FIELDS) { widget.fields = widget.fields.slice(0, MAX_ALLOWED_FIELDS); } if (statsError) { return ; } if (!statsData) { return ( ); } function toPercent(value, total) { return t("common.percent", { value: !Number.isNaN(value / total) ? 100 * (value / total) : 0, maximumFractionDigits: 2, }); } return ( ); }