Schemas.tsx 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import React from 'react';
  2. import { ClusterName } from 'redux/interfaces';
  3. import { Switch, Route, useParams } from 'react-router-dom';
  4. import PageLoader from 'components/common/PageLoader/PageLoader';
  5. import ListContainer from './List/ListContainer';
  6. import DetailsContainer from './Details/DetailsContainer';
  7. interface SchemasProps {
  8. isFetched: boolean;
  9. fetchSchemasByClusterName: (clusterName: ClusterName) => void;
  10. }
  11. interface ParamTypes {
  12. clusterName: string;
  13. }
  14. const Schemas: React.FC<SchemasProps> = ({
  15. isFetched,
  16. fetchSchemasByClusterName,
  17. }) => {
  18. const { clusterName } = useParams<ParamTypes>();
  19. React.useEffect(() => {
  20. fetchSchemasByClusterName(clusterName);
  21. }, [fetchSchemasByClusterName, clusterName]);
  22. if (isFetched) {
  23. return (
  24. <Switch>
  25. <Route
  26. exact
  27. path="/ui/clusters/:clusterName/schemas"
  28. component={ListContainer}
  29. />
  30. <Route
  31. exact
  32. path="/ui/clusters/:clusterName/schemas/:subject/latest"
  33. component={DetailsContainer}
  34. />
  35. </Switch>
  36. );
  37. }
  38. return <PageLoader />;
  39. };
  40. export default Schemas;