import Block from "components/services/widget/block"; import Container from "components/services/widget/container"; import { useTranslation } from "next-i18next/pages"; import useWidgetAPI from "utils/proxy/use-widget-api"; import withWidgetFields from "utils/widget-fields"; const SUMMARY_FIELDS = ["servers", "stacks", "containers"]; const STACK_FIELDS = ["total", "running", "down", "unhealthy"]; const CONTAINER_FIELDS = ["total", "running", "stopped", "unhealthy"]; export default function Component({ service: configuredService }) { const { t } = useTranslation(); const configuredWidget = configuredService.widget; const defaultFields = configuredWidget.showSummary ? SUMMARY_FIELDS : configuredWidget.showStacks ? STACK_FIELDS : CONTAINER_FIELDS; const service = withWidgetFields(configuredService, defaultFields); const { widget } = service; const containersEndpoint = !(!widget.showSummary && widget.showStacks) ? "containers" : ""; const { data: containersData, error: containersError } = useWidgetAPI(widget, containersEndpoint); const stacksEndpoint = widget.showSummary || widget.showStacks ? "stacks" : ""; const { data: stacksData, error: stacksError } = useWidgetAPI(widget, stacksEndpoint); const serversEndpoint = widget.showSummary ? "servers" : ""; const { data: serversData, error: serversError } = useWidgetAPI(widget, serversEndpoint); if (containersError || stacksError || serversError) { return ; } if ( (!widget.showStacks && !containersData) || (widget.showSummary && (!containersData || !stacksData || !serversData)) || (widget.showStacks && !stacksData) ) { return widget.showSummary ? ( ) : widget.showStacks ? ( ) : ( ); } return widget.showSummary ? ( ) : widget.showStacks ? ( ) : ( ); }