import React from 'react'; import { NavLink, Route, Switch, useParams } from 'react-router-dom'; import { Connector, Task } from 'generated-sources'; import { ClusterName, ConnectName, ConnectorName } from 'redux/interfaces'; import { clusterConnectConnectorConfigPath, clusterConnectConnectorPath, clusterConnectConnectorTasksPath, } from 'lib/paths'; import PageLoader from 'components/common/PageLoader/PageLoader'; import Navbar from 'components/common/Navigation/Navbar.styled'; import PageHeading from 'components/common/PageHeading/PageHeading'; import OverviewContainer from './Overview/OverviewContainer'; import TasksContainer from './Tasks/TasksContainer'; import ConfigContainer from './Config/ConfigContainer'; import ActionsContainer from './Actions/ActionsContainer'; interface RouterParams { clusterName: ClusterName; connectName: ConnectName; connectorName: ConnectorName; } export interface DetailsProps { fetchConnector( clusterName: ClusterName, connectName: ConnectName, connectorName: ConnectorName ): void; fetchTasks( clusterName: ClusterName, connectName: ConnectName, connectorName: ConnectorName ): void; isConnectorFetching: boolean; areTasksFetching: boolean; connector: Connector | null; tasks: Task[]; } const Details: React.FC = ({ fetchConnector, fetchTasks, isConnectorFetching, areTasksFetching, connector, }) => { const { clusterName, connectName, connectorName } = useParams(); React.useEffect(() => { fetchConnector(clusterName, connectName, connectorName); }, [fetchConnector, clusterName, connectName, connectorName]); React.useEffect(() => { fetchTasks(clusterName, connectName, connectorName); }, [fetchTasks, clusterName, connectName, connectorName]); if (isConnectorFetching || areTasksFetching) { return ; } if (!connector) return null; return (
Overview Tasks Config
); }; export default Details;