BrokersContainer.ts 1.3 KB

123456789101112131415161718192021222324252627282930313233
  1. import { connect } from 'react-redux';
  2. import {
  3. fetchBrokers,
  4. fetchBrokerMetrics,
  5. } from 'redux/actions';
  6. import Brokers from './Brokers';
  7. import * as brokerSelectors from 'redux/reducers/brokers/selectors';
  8. import { RootState, ClusterName } from 'redux/interfaces';
  9. import { RouteComponentProps } from 'react-router-dom';
  10. interface RouteProps {
  11. clusterName: ClusterName;
  12. }
  13. interface OwnProps extends RouteComponentProps<RouteProps> { }
  14. const mapStateToProps = (state: RootState, { match: { params: { clusterName } }}: OwnProps) => ({
  15. isFetched: brokerSelectors.getIsBrokerListFetched(state),
  16. clusterName,
  17. brokerCount: brokerSelectors.getBrokerCount(state),
  18. zooKeeperStatus: brokerSelectors.getZooKeeperStatus(state),
  19. activeControllers: brokerSelectors.getActiveControllers(state),
  20. onlinePartitionCount: brokerSelectors.getOnlinePartitionCount(state),
  21. offlinePartitionCount: brokerSelectors.getOfflinePartitionCount(state),
  22. underReplicatedPartitionCount: brokerSelectors.getUnderReplicatedPartitionCount(state)
  23. });
  24. const mapDispatchToProps = {
  25. fetchBrokers: (clusterName: ClusterName) => fetchBrokers(clusterName),
  26. fetchBrokerMetrics: (clusterName: ClusterName) => fetchBrokerMetrics(clusterName),
  27. };
  28. export default connect(mapStateToProps, mapDispatchToProps)(Brokers);