Overview.tsx 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import React from 'react';
  2. import { Connector } from 'generated-sources';
  3. import * as C from 'components/common/Tag/Tag.styled';
  4. import * as Metrics from 'components/common/Metrics';
  5. export interface OverviewProps {
  6. connector: Connector | null;
  7. runningTasksCount: number;
  8. failedTasksCount: number;
  9. }
  10. const Overview: React.FC<OverviewProps> = ({
  11. connector,
  12. runningTasksCount,
  13. failedTasksCount,
  14. }) => {
  15. if (!connector) return null;
  16. return (
  17. <Metrics.Wrapper>
  18. <Metrics.Section>
  19. {connector.status?.workerId && (
  20. <Metrics.Indicator label="Worker">
  21. {connector.status.workerId}
  22. </Metrics.Indicator>
  23. )}
  24. <Metrics.Indicator label="Type">{connector.type}</Metrics.Indicator>
  25. {connector.config['connector.class'] && (
  26. <Metrics.Indicator label="Class">
  27. {connector.config['connector.class']}
  28. </Metrics.Indicator>
  29. )}
  30. <Metrics.Indicator label="State">
  31. <C.Tag color="yellow">{connector.status.state}</C.Tag>
  32. </Metrics.Indicator>
  33. <Metrics.Indicator label="Tasks Running">
  34. {runningTasksCount}
  35. </Metrics.Indicator>
  36. <Metrics.Indicator label="Tasks Failed" isAlert>
  37. {failedTasksCount}
  38. </Metrics.Indicator>
  39. </Metrics.Section>
  40. </Metrics.Wrapper>
  41. );
  42. };
  43. export default Overview;