Untitled
unknown
javascript
4 years ago
4.5 kB
5
Indexable
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;
Editor is loading...