Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 4262 | Rev 4710 | Ir a la última revisión | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 4262 Rev 4678
Línea 1... Línea 1...
1
/* eslint-disable react/prop-types */
1
/* eslint-disable react/prop-types */
2
import React, { useState } from 'react'
2
import React, { useEffect, useRef, useState } from 'react'
3
import Avatar from '../../../shared/Avatar/Avatar'
3
import Avatar from '../../../shared/Avatar/Avatar'
4
import axios from '../../../utils/axios'
4
import axios from '../../../utils/axios'
5
import ArrowDropDownIcon from '@mui/icons-material/ArrowDropDown';
5
import ArrowDropDownIcon from '@mui/icons-material/ArrowDropDown';
Línea 6... Línea 6...
6
 
6
 
7
const UserOptions = ({
7
const UserOptions = ({
8
    image = '',
8
    image = '',
9
    name = '',
9
    name = '',
10
    adminUrl = '',
10
    adminUrl = '',
11
    impersonateUrl = '',
11
    impersonateUrl = '',
12
}) => {
-
 
13
 
12
}) => {
-
 
13
    const [displayOptions, setDisplayOptions] = useState(false)
-
 
14
    const userDropdownContainer = useRef(null);
-
 
15
 
-
 
16
    useEffect(() => {
-
 
17
        const handleClickOutside = (event) => {
-
 
18
            if (userDropdownContainer.current && !userDropdownContainer.current.contains(event.target)) {
-
 
19
                setDisplayOptions(false)
-
 
20
            }
-
 
21
        }
-
 
22
        document.addEventListener("mousedown", handleClickOutside);
-
 
23
 
-
 
24
        return () => {
-
 
25
            document.removeEventListener("mousedown", handleClickOutside);
-
 
26
        };
Línea 14... Línea 27...
14
    const [displayOptions, setDisplayOptions] = useState(false)
27
    }, [userDropdownContainer]);
15
 
28
 
16
    const handleDisplay = async (e) => {
29
    const handleDisplay = async (e) => {
17
        e.preventDefault()
30
        e.preventDefault()
Línea 40... Línea 53...
40
                    name={name}
53
                    name={name}
41
                    size='md'
54
                    size='md'
42
                />
55
                />
43
                <span>Me <ArrowDropDownIcon className='user__option-icon' /></span>
56
                <span>Me <ArrowDropDownIcon className='user__option-icon' /></span>
44
            </a>
57
            </a>
45
            <div className={`user__options-dropdown ${displayOptions ? 'fadeIn' : 'fadeOut'}`}>
58
            <div className={`user__options-dropdown ${displayOptions ? 'fadeIn' : 'fadeOut'}`} ref={userDropdownContainer}>
46
                <div className='user__options-description'>
59
                <div className='user__options-description'>
47
                    <div className='user__options-info'>
60
                    <div className='user__options-info'>
48
                        <Avatar
61
                        <Avatar
49
                            imageUrl={image}
62
                            imageUrl={image}
50
                            name={name}
63
                            name={name}