import { useTranslation } from "next-i18next/pages"; import Block from "components/services/widget/block"; import Container from "components/services/widget/container"; import useWidgetAPI from "utils/proxy/use-widget-api"; import withWidgetFields from "utils/widget-fields"; const SUMMARY_FIELDS = ["systems", "up"]; const SYSTEM_FIELDS = ["name", "status", "cpu", "memory"]; export default function Component({ service: configuredService }) { const { t } = useTranslation(); const defaultFields = configuredService.widget.systemId ? SYSTEM_FIELDS : SUMMARY_FIELDS; const service = withWidgetFields(configuredService, defaultFields); const { widget } = service; const { systemId } = widget; const { data: systems, error: systemsError } = useWidgetAPI(widget, "systems"); let system = null; let finalError = systemsError; if (systems && !systems.items) { finalError = { message: "No items returned from beszel API" }; } else if (systems && systems.items && systemId) { system = systems.items.find((item) => item.id === systemId || item.name === systemId); if (!system) { finalError = { message: `System with id ${systemId} not found` }; } } if (finalError) { return ; } if (!systems) { return ( ); } if (system) { return ( ); } const upTotal = systems.items.filter((item) => item.status === "up").length; return ( ); }