import React from "react"; import './Navbar.sass' import {connect} from "react-redux"; import {userLogout} from "../../api/auth"; import {Link} from "react-router-dom"; import {logout, setModal} from "../../store/actions"; import {hasAccessToAdminPanel} from "../../utils"; import {FontAwesomeIcon} from '@fortawesome/react-fontawesome'; import {faBars} from '@fortawesome/free-solid-svg-icons'; import RegisterModal from "../Modals/RegisterModal"; import LoginModal from "../Modals/LoginModal"; type Props = { setModal: SetModal logout: () => void currentUser: UserType }; type State = { expand: boolean width: number } class Navbar extends React.Component { state: State = { expand: false, width: window.screen.width } logout = () => { this.props.logout(); localStorage.removeItem('user'); userLogout().then(); }; changeSize = () => { this.setState({ expand: !this.state.expand }) } componentDidMount() { window.addEventListener("resize", () => { if(this.state.width !== window.screen.width) this.setState({ width: window.screen.width }); }) } render() { const { currentUser, setModal } = this.props; const { expand } = this.state; const isMinimized = window.screen.width <= 1000; const links = (
Главная Новеллы {expand && isMinimized && (
X
)}
); return ( ) } } export default connect( (state: StoreState) => ({ currentUser: state.currentUser }), dispatch => ({ logout: () => dispatch(logout()), setModal: (modal: React.ReactNode | null) => dispatch(setModal(modal)) }) )(Navbar);