import { useMemo, useState } from "react"; import { useTranslation } from "react-i18next"; import { ExpandableSection, PageSection } from "@patternfly/react-core"; import { TableComposable, Tbody, Td, Th, Thead, Tr, } from "@patternfly/react-table"; import { useServerInfo } from "../context/server-info/ServerInfoProvider"; import { TableToolbar } from "../components/table-toolbar/TableToolbar"; export const ProviderInfo = () => { const { t } = useTranslation(); const serverInfo = useServerInfo(); const [filter, setFilter] = useState(""); const [open, setOpen] = useState([]); const providerInfo = useMemo( () => Object.entries(serverInfo.providers || []).filter(([key]) => key.includes(filter), ), [filter], ); const toggleOpen = (option: string) => { if (open.includes(option)) { setOpen(open.filter((item: string) => item !== option)); } else { setOpen([...open, option]); } }; return ( {t("spi")} {t("providers")} {providerInfo.map(([name, { providers }]) => ( {name}
    {Object.entries(providers).map( ([key, { operationalInfo }]) => (
  • {key} {operationalInfo ? ( toggleOpen(key)} toggleText={ open.includes(key) ? t("showLess") : t("showMore") } > {Object.entries(operationalInfo).map( ([key, value]) => ( {key} {value} ), )} ) : null}
  • ), )}
))}
); };