Rev 4263 | Rev 5384 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
/* eslint-disable react/prop-types */import React, { useEffect, useState, useRef } from 'react'import SocialNetworks from '../../../../dashboard/components/home-section/SocialNetworks'import ProfileInfo from '../../../../dashboard/components/home-section/ProfileInfo'import MyGroups from '../../../../shared/helpers/my-groups-helper/MyGroups'import SuggestedGroupsHelper from '../../../../shared/helpers/suggested-groups-helper/SuggestedGroupsHelper'const ResponsiveNavbar = ({ show, navbarVars, LABELS }) => {// const { authorization } = props.companyVars// const {allowProfile, allowFollower, allowUser, allowFeed, allowJob, allowCompany, allowSetting} = authorizationconst [shouldRender, setShouldRender] = useState(show)const responsiveNavbar = useRef()const handleUnmount = () => !show && setShouldRender(false)useEffect(() => {if (show) return setShouldRender(show)}, [show])useEffect(() => {const handleClickOutside = (event) => {if (responsiveNavbar.current && !responsiveNavbar.current.contains(event.target)) {setShouldRender(false)}}document.addEventListener('mousedown', handleClickOutside)return () => {document.removeEventListener('mousedown', handleClickOutside)}}, [responsiveNavbar])return (<navclassName={`responsiveNavbar ${shouldRender ? 'slideIn' : 'slideOut'} p-0`}onAnimationEnd={handleUnmount}ref={responsiveNavbar}><ProfileInfo{...navbarVars}headerClasses="d-flex rounded-0"/><MyGroups LABELS={LABELS} suggestedClassname="d-block" /><SuggestedGroupsHelper suggestedClassname='d-block' /><SocialNetworks LABELS={LABELS} /></nav>)}export default ResponsiveNavbar