import React, { FC, useCallback, useEffect } from 'react'; import { Route, Switch } from 'react-router-dom'; import clsx from 'clsx'; import { useReduxSelector, useReduxDispatch } from 'app/functions'; import { resetAuth } from 'app/components/auth/actions'; import { ScrollIntoView } from 'app/components/ui/scroll'; import PrivateRoute from 'app/containers/PrivateRoute'; import AuthFlowRoute from 'app/containers/AuthFlowRoute'; import { PopupStack } from 'app/components/ui/popup'; import * as loader from 'app/services/loader'; import { getActiveAccount } from 'app/components/accounts/reducer'; import { ComponentLoader } from 'app/components/ui/loader'; import PageNotFound from 'app/pages/404/PageNotFound'; import DeviceCode from 'app/components/auth/deviceCode'; import styles from './root.scss'; import Toolbar from './Toolbar'; const ProfileController = React.lazy( () => import(/* webpackChunkName: "page-profile-all" */ 'app/pages/profile/ProfileController'), ); const RulesPage = React.lazy(() => import(/* webpackChunkName: "page-rules" */ 'app/pages/rules/RulesPage')); const DevPage = React.lazy(() => import(/* webpackChunkName: "page-dev-applications" */ 'app/pages/dev/DevPage')); const AuthPage = React.lazy(() => import(/* webpackChunkName: "page-auth" */ 'app/pages/auth/AuthPage')); const RootPage: FC = () => { const dispatch = useReduxDispatch(); const user = useReduxSelector((state) => state.user); const account = useReduxSelector(getActiveAccount); const isPopupActive = useReduxSelector((state) => state.popup.popups.length > 0); const onLogoClick = useCallback(() => { dispatch(resetAuth()); }, []); useEffect(() => { loader.hide(); }); // No deps, effect must be called on every update return (