import { useTranslation } from "next-i18next"; import { useMemo } from "react"; import Container from "components/services/widget/container"; import Block from "components/services/widget/block"; import useWidgetAPI from "utils/proxy/use-widget-api"; export const racknerdDefaultFields = ["ipAddress", "hddtotal", "bandwidthusage"]; export default function Component({ service }) { const { t } = useTranslation(); const { widget } = service; const params = { key: widget.key, hash: widget.hash, }; const { data: racknerdData, error: racknerdError } = useWidgetAPI(widget, "serverinfo", {...params, action: 'info'}); // Support for fields (harddriveusage, memoryusage, bandwidthusage) const [showIpAddress, showMemoryUsage, showHardDriveUsage, showBandwidthUsed, showBandwidthFree] = useMemo(() => { // Default values if fields is not set if (!widget.fields) return [true, false, true, true, true]; const hasIpAddress = widget.fields?.includes("ipAddress") || false; const hasMemoryUsage = widget.fields?.includes("memoryusage") || false; const hasHardDriveUsage = widget.fields?.includes("hddtotal") || false; const hasBandwidthUsed = widget.fields?.includes("bandwidthused") || false; const hasBandwidthFree = widget.fields?.includes("bandwidthfree") || false; return [hasIpAddress, hasMemoryUsage, hasHardDriveUsage, hasBandwidthUsed, hasBandwidthFree]; }, [widget.fields]); if (racknerdError) { return ; } if (!racknerdData) { return ( {showIpAddress && } {showMemoryUsage && } {showHardDriveUsage && } {showBandwidthUsed && } {showBandwidthFree && } ); } const { racknerd: racknerdInfo } = racknerdData; return ( {showIpAddress && ()} {showMemoryUsage && ()} {showHardDriveUsage && ()} {showBandwidthUsed && ()} {showBandwidthFree && ()} ); }