import classNames from "classnames"; import { useContext, useState } from "react"; import Status from "./status"; import Widget from "./widget"; import Ping from "./ping"; import SiteMonitor from "./site-monitor"; import KubernetesStatus from "./kubernetes-status"; import Docker from "widgets/docker/component"; import Kubernetes from "widgets/kubernetes/component"; import { SettingsContext } from "utils/contexts/settings"; import ResolvedIcon from "components/resolvedicon"; export default function Item({ service, group }) { const hasLink = service.href && service.href !== "#"; const { settings } = useContext(SettingsContext); const showStats = service.showStats === false ? false : settings.showStats; const statusStyle = service.statusStyle !== undefined ? service.statusStyle : settings.statusStyle; const [statsOpen, setStatsOpen] = useState(service.showStats); const [statsClosing, setStatsClosing] = useState(false); // set stats to closed after 300ms const closeStats = () => { if (statsOpen) { setStatsClosing(true); setTimeout(() => { setStatsOpen(false); setStatsClosing(false); }, 300); } }; return (
  • {service.icon && (hasLink ? ( ) : (
    ))} {hasLink ? (
    {service.name}

    {service.description}

    ) : (
    {service.name}

    {service.description}

    )}
    {service.ping && (
    Ping status
    )} {service.siteMonitor && (
    Site monitor status
    )} {service.container && ( )} {service.app && !service.external && ( )}
    {service.container && service.server && (
    {(showStats || statsOpen) && ( )}
    )} {service.app && (
    {(showStats || statsOpen) && ( )}
    )} {service.widget && }
  • ); }