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 && ()}
);
}