import React, { useCallback, useEffect } from 'react' import './App.css' import { TodolistsList } from 'features/TodolistsList/TodolistsList' import { ErrorSnackbar } from 'components/ErrorSnackbar/ErrorSnackbar' import { useDispatch, useSelector } from 'react-redux' import { initializeAppTC, selectAppInitialized, selectAppStatus, } from './app-reducer' import { BrowserRouter, Route, Routes } from 'react-router-dom' import { Login } from 'features/Login/Login' import { logoutTC, selectIsLoggedIn } from 'features/Login/auth-reducer' import { AppBar, Button, CircularProgress, Container, IconButton, LinearProgress, Toolbar, Typography, } from '@mui/material' import { Menu } from '@mui/icons-material' type Props = { demo?: boolean } function App({ demo = false }: Props) { const status = useSelector(selectAppStatus) const isInitialized = useSelector(selectAppInitialized) const isLoggedIn = useSelector(selectIsLoggedIn) const dispatch = useDispatch() useEffect(() => { dispatch(initializeAppTC()) }, []) const logoutHandler = useCallback(() => { dispatch(logoutTC()) }, []) if (!isInitialized) { return (
) } return (
News {isLoggedIn && ( )} {status === 'loading' && } } /> } />
) } export default App