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"; export default function Component({ service }) { const { widget } = service; const { data: serverData, error: serverError } = useWidgetAPI(widget, "status"); const { t } = useTranslation(); if (serverError) { return ; } // Default fields if (widget.fields == null || widget.fields.length === 0) { widget.fields = ["map", "currentPlayers", "ping"]; } const MAX_ALLOWED_FIELDS = 4; // Limits max number of displayed fields if (widget.fields != null && widget.fields.length > MAX_ALLOWED_FIELDS) { widget.fields = widget.fields.slice(0, MAX_ALLOWED_FIELDS); } if (!serverData) { return ( ); } const status = serverData.online ? ( {t("gamedig.online")} ) : ( {t("gamedig.offline")} ); const name = serverData.online ? serverData.name : "-"; const map = serverData.online ? serverData.map : "-"; const currentPlayers = serverData.online ? `${serverData.players} / ${serverData.maxplayers}` : "-"; const players = serverData.online ? `${serverData.players}` : "-"; const maxPlayers = serverData.online ? `${serverData.maxplayers}` : "-"; const bots = serverData.online ? `${serverData.bots}` : "-"; const ping = serverData.online ? `${t("common.ms", { value: serverData.ping, style: "unit", unit: "millisecond" })}` : "-"; return ( ); }