Rev 5455 | 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, useRef, useState } from 'react'import UserDropdown from './UserDropdown';const UserImageDropdown = ({ fullName, image, linkAdmin, linkImpersonate, sessionImage }) => {const [showUserDropdown, setShowUserDropdown] = useState(false);const userDropdownContainer = useRef(null);const userImg = useRef(null);const handleShowUserDropdown = () => setShowUserDropdown(!showUserDropdown)useEffect(() => {const handleClickOutside = (event) => {if (userDropdownContainer.current && !userDropdownContainer.current.contains(event.target)) {setShowUserDropdown(false)}}document.addEventListener("mousedown", handleClickOutside);return () => {document.removeEventListener("mousedown", handleClickOutside);};}, [userDropdownContainer]);return (<divclassName='userImgContainer'onClick={handleShowUserDropdown}ref={userDropdownContainer}><div className="d-flex align-items-center"><imgsrc={sessionImage ? sessionImage : image}alt="user-img"className='userImg'ref={userImg}/><div className="d-none d-sm-none d-md-inline-flex d-lg-inline-flex flex-column"><h3>{fullName}</h3><span>Mi perfil</span></div></div><div className="d-none d-sm-none d-md-block d-lg-block flex-column"><img src='/images/icons/options.png' className='img-icon options-lg' /></div><UserDropdownlinkAdmin={linkAdmin}linkImpersonate={linkImpersonate}show={showUserDropdown}onClose={handleShowUserDropdown}userDropdownContainer={userDropdownContainer}/></div>)}export default UserImageDropdown