Rev 6246 | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
/* eslint-disable react/prop-types */import React, { useEffect, useRef, useState } from 'react'import Avatar from '../../../shared/Avatar/Avatar'import axios from '../../../utils/axios'import ArrowDropDownIcon from '@mui/icons-material/ArrowDropDown'const UserOptions = ({image = '',name = '',adminUrl = '',impersonateUrl = '',defaultNetwork = 'y',routeKnowledge,knowledgeAuth,}) => {const [displayOptions, setDisplayOptions] = useState(false)const userDropdownContainer = useRef(null)useEffect(() => {const handleClickOutside = (event) => {if (userDropdownContainer?.current &&!userDropdownContainer?.current?.contains(event.target)) {setDisplayOptions(false)}}document.addEventListener('mousedown', handleClickOutside)return () => {document.removeEventListener('mousedown', handleClickOutside)}}, [userDropdownContainer])const handleDisplay = async (e) => {e.preventDefault()setDisplayOptions(!displayOptions)}const getAdminUrl = async (e) => {e.preventDefault()try {const { data } = await axios.get('/backend/signin-admin')if (data.success) return window.open(data.data)} catch (error) {console.log('>>: error > ', error)}}return (<li><a href="#" className="header__option mobile" onClick={handleDisplay}><Avatar imageUrl={image} name={name} size="md" /><span>Me <ArrowDropDownIcon className="user__option-icon" /></span></a><divclassName={`user__options-dropdown ${displayOptions ? 'fadeIn' : 'fadeOut'}`}ref={userDropdownContainer}><div className="user__options-description"><div className="user__options-info"><Avatar imageUrl={image} name={name} size="xl" /><h3>{name}</h3></div>{/* <a href='#' className='btn__profile'>View profile</a> */}</div>{(adminUrl || impersonateUrl || knowledgeAuth) && (<div className="user__options-item"><h3>Admin</h3><ul>{adminUrl && (<li><a href="#" onClick={getAdminUrl}>Administración</a></li>)}{impersonateUrl && (<li><a href="/impersonate" target="secondary">Personificar otro usuario</a></li>)}</ul></div>)}<div className="user__options-item"><h3>Cuenta</h3><ul><li><a href="/account-settings" target="secondary">Configuración de la cuenta</a></li>{defaultNetwork === 'y' && (<><li><a href="/privacy-policy" target="secondary">Política de privacidad</a></li><li><a href="/cookies" target="secondary">Política de cookies</a></li></>)}</ul></div><div className="user__options-item"><ul><li className="logOutContainer"><a className="logOutContainer__a" href="/signout">Cerrar sesión</a></li></ul></div></div></li>)}export default UserOptions