import React, { useContext } from 'react';
import PropTypes from 'prop-types';
import { openModal, closeModal } from '@redq/reuse-modal';
import { Icon } from 'react-icons-kit';
import { androidClose } from 'react-icons-kit/ionicons/androidClose';
import NavbarWrapper from 'common/components/Navbar';
import Drawer from 'common/components/Drawer';
import Button from 'common/components/Button';
import Logo from 'common/components/UIElements/Logo';
import HamburgMenu from 'common/components/HamburgMenu';
import ScrollSpyMenu from 'common/components/ScrollSpyMenu';
import { DrawerContext } from 'common/contexts/DrawerContext';
import { Container } from './navbar.style';
import SearchPanel from '../SearchPanel';
import LoginModal from '../LoginModal';
import Copyright from '../Copyright';
import Menu from '@material-ui/core/Menu';
import MenuItem from '@material-ui/core/MenuItem';
import { menuData } from 'common/data/AudioToText';
import logo from 'common/assets/image/AudioToText/logo.svg';
const CloseModalButton = () => (
<Button
className="modalCloseBtn"
variant="fab"
onClick={() => closeModal()}
icon={<i className="flaticon-plus-symbol" />}
/>
);
const CloseModalButtonAlt = () => (
<Button
className="modalCloseBtn alt"
variant="fab"
onClick={() => closeModal()}
icon={<i className="flaticon-plus-symbol" />}
/>
);
const Navbar = ({ navbarStyle, logoStyle }) => {
const { state, dispatch } = useContext(DrawerContext);
const handleSearchModal = () => {
openModal({
config: {
className: 'search-modal',
disableDragging: true,
width: '100%',
height: '100%',
animationFrom: { transform: 'translateY(100px)' },
animationTo: { transform: 'translateY(0)' }, //
transition: {
mass: 1,
tension: 180,
friction: 26,
},
},
component: SearchPanel,
componentProps: {},
closeComponent: CloseModalButtonAlt,
closeOnClickOutside: false,
});
};
const handleLoginModal = () => {
openModal({
config: {
className: 'login-modal',
disableDragging: true,
width: '100%',
height: '100%',
animationFrom: { transform: 'translateY(100px)' },
animationTo: { transform: 'translateY(0)' },
transition: {
mass: 1,
tension: 180,
friction: 26,
},
},
component: LoginModal,
componentProps: {},
closeComponent: CloseModalButton,
closeOnClickOutside: false,
});
};
const toggleHandler = () => {
dispatch({
type: 'TOGGLE',
});
};
const token = localStorage.getItem("token");
console.log(token);
return(
<NavbarWrapper {...navbarStyle}>
<Container>
<Logo
href="/"
logoSrc={logo}
title="AudioToText"
logoStyle={logoStyle}
/>
<div style={{ display: 'flex', alignItems: 'center' }}>
<Button
variant="textButton"
onClick={handleSearchModal}
icon={<i className="flaticon-magnifying-glass" />}
aria-label="search button"
/>
<Button
variant="textButton"
onClick={handleLoginModal}
icon={<i className="flaticon-user" />}
aria-label="registration button"
/>
<Drawer
width="420px"
placement="right"
drawerHandler={<HamburgMenu />}
open={state.isOpen}
toggleHandler={toggleHandler}
>
<button
type="button"
className={state.isOpen ? 'active' : ''}
onClick={toggleHandler}
aria-label="drawer toggle button"
>
<Icon icon={androidClose} />
</button>
<ScrollSpyMenu
menuItems={menuData}
drawerClose={true}
offset={-100}
/>
<Copyright />
</Drawer>
</div>
</Container>
</NavbarWrapper>
);
};
Navbar.propTypes = {
navbarStyle: PropTypes.object,
logoStyle: PropTypes.object,
};
Navbar.defaultProps = {
navbarStyle: {
minHeight: '70px',
},
logoStyle: {
width: '128px',
height: 'auto',
},
};
export default Navbar;