import React from 'react'; import cx from 'classnames'; import { Cluster } from 'generated-sources'; import { Switch, Route, useLocation } from 'react-router-dom'; import { GIT_TAG, GIT_COMMIT } from 'lib/constants'; import { Alerts } from 'redux/interfaces'; import Nav from 'components/Nav/Nav'; import PageLoader from 'components/common/PageLoader/PageLoader'; import Dashboard from 'components/Dashboard/Dashboard'; import ClusterPage from 'components/Cluster/Cluster'; import Version from 'components/Version/Version'; import Alert from 'components/Alert/Alert'; import 'components/App.scss'; export interface AppProps { isClusterListFetched?: boolean; alerts: Alerts; clusters: Cluster[]; fetchClustersList: () => void; } const App: React.FC = ({ isClusterListFetched, alerts, clusters, fetchClustersList, }) => { const [isSidebarVisible, setIsSidebarVisible] = React.useState(false); const onBurgerClick = React.useCallback( () => setIsSidebarVisible(!isSidebarVisible), [isSidebarVisible] ); const closeSidebar = React.useCallback(() => setIsSidebarVisible(false), []); const location = useLocation(); React.useEffect(() => { closeSidebar(); }, [location]); React.useEffect(() => { fetchClustersList(); }, [fetchClustersList]); return (
{alerts.map(({ id, type, title, message, response, createdAt }) => ( ))}
); }; export default App;