import React from 'react'; import {Link} from 'react-router-dom'; import routes from '../../../../constants/routes.json'; import logo from '../logo.png'; type Props = { onSignOut: () => void; userName: string; }; type State = { expanded: boolean; screenWidth: number; userToggle: boolean; }; class Header extends React.Component { constructor(props: Props) { super(props); this.state = { expanded: false, screenWidth: 1900, userToggle: false } } componentDidMount(): void { window.addEventListener("resize", () => { this.setState({screenWidth: window.innerWidth}) }); if(window.innerWidth > 914 ) { this.setState({expanded: false}) } } componentDidUpdate(_: Props, prevState: State, ): void { if(prevState.screenWidth !== this.state.screenWidth) { if(window.innerWidth > 914 ) { this.setState({expanded: false}) } } } onUserClick = () => { const toggle = this.state.userToggle; this.setState({userToggle: !toggle}) }; onToggleClick = () => { const expanded = this.state.expanded; this.setState({expanded: !expanded}); }; renderBrand = () => { if(!this.state.expanded) { return (
logo
CARAVAN COMMERCE
) } else { return (
CARAVAN COMMERCE
) } }; render() { const userToggle = this.state.userToggle ? "nav-item dropdown show" : "nav-item dropdown"; const navBarClass = this.state.expanded ? "navbar navbar-expand-lg bg-info navbar-absolute bg-white": "navbar navbar-expand-lg bg-info navbar-absolute"; const collapseClass = this.state.expanded ? "collapse navbar-collapse justify-content-end show": "collapse navbar-collapse justify-content-end"; return (
{this.props.children}
); } } export default Header;