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 { AppRootStateType } from './store' import { initializeAppTC, RequestStatusType } from './app-reducer' import { BrowserRouter, Route, Routes } from 'react-router-dom' import { Login } from '../features/Login/Login' import { logoutTC } from '../features/Login/auth-reducer' import { AppBar, Button, CircularProgress, Container, IconButton, LinearProgress, Toolbar, Typography } from '@mui/material'; import { Menu } from '@mui/icons-material' type PropsType = { demo?: boolean } function App({demo = false}: PropsType) { const status = useSelector((state) => state.app.status) const isInitialized = useSelector((state) => state.app.isInitialized) const isLoggedIn = useSelector(state => state.auth.isLoggedIn) const dispatch = useDispatch() useEffect(() => { dispatch(initializeAppTC()) }, []) const logoutHandler = useCallback(() => { dispatch(logoutTC()) }, []) if (!isInitialized) { return
} return (
News {isLoggedIn && } {status === 'loading' && } }/> }/>
) } export default App