import React from 'react'; import { Topic, TopicDetails, ConsumerTopicPartitionDetail, } from 'generated-sources'; import { ClusterName, TopicName } from 'redux/interfaces'; interface Props extends Topic, TopicDetails { clusterName: ClusterName; topicName: TopicName; consumerGroups: ConsumerTopicPartitionDetail[]; fetchTopicConsumerGroups( clusterName: ClusterName, topicName: TopicName ): void; } const TopicConsumerGroups: React.FC = ({ consumerGroups, fetchTopicConsumerGroups, clusterName, topicName, }) => { React.useEffect(() => { fetchTopicConsumerGroups(clusterName, topicName); }, []); return (
{consumerGroups.length > 0 ? ( {consumerGroups.map((consumer) => ( ))}
Group ID Consumer ID Host Partition Messages behind Current offset End offset
{consumer.groupId} {consumer.consumerId} {consumer.host} {consumer.partition} {consumer.messagesBehind} {consumer.currentOffset} {consumer.endOffset}
) : ( 'No active consumer groups' )}
); }; export default TopicConsumerGroups;