import React, { Suspense } from 'react'; import useAppParams from 'lib/hooks/useAppParams'; import { clusterConnectorNewRelativePath, ClusterNameRoute } from 'lib/paths'; import ClusterContext from 'components/contexts/ClusterContext'; import Search from 'components/common/Search/Search'; import * as Metrics from 'components/common/Metrics'; import PageHeading from 'components/common/PageHeading/PageHeading'; import { ActionButton } from 'components/common/ActionComponent'; import { ControlPanelWrapper } from 'components/common/ControlPanel/ControlPanel.styled'; import PageLoader from 'components/common/PageLoader/PageLoader'; import { Action, ConnectorState, ResourceType } from 'generated-sources'; import { useConnectors } from 'lib/hooks/api/kafkaConnect'; import List from './List'; const ListPage: React.FC = () => { const { isReadOnly } = React.useContext(ClusterContext); const { clusterName } = useAppParams(); // Fetches all connectors from the API, without search criteria. Used to display general metrics. const { data: connectorsMetrics, isLoading } = useConnectors(clusterName); const numberOfFailedConnectors = connectorsMetrics?.filter( ({ status: { state } }) => state === ConnectorState.FAILED ).length; const numberOfFailedTasks = connectorsMetrics?.reduce( (acc, metric) => acc + (metric.failedTasksCount ?? 0), 0 ); return ( <> {!isReadOnly && ( Create Connector )} {connectorsMetrics?.length || '-'} {numberOfFailedConnectors ?? '-'} {numberOfFailedTasks ?? '-'} }> ); }; export default ListPage;