Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 4260 | Rev 4262 | Ir a la última revisión | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
4250 stevensc 1
/* eslint-disable react/prop-types */
4251 stevensc 2
import React, { useState } from 'react'
4250 stevensc 3
import Avatar from '../../../shared/Avatar/Avatar'
4251 stevensc 4
import axios from '../../../utils/axios'
5
import ArrowDropDownIcon from '@mui/icons-material/ArrowDropDown';
4250 stevensc 6
 
7
const UserOptions = ({
8
    image = '',
9
    name = '',
10
    adminUrl = '',
11
    impersonateUrl = '',
12
}) => {
13
 
4251 stevensc 14
    const [displayOptions, setDisplayOptions] = useState(false)
15
 
16
    const handleDisplay = async (e) => {
17
        e.preventDefault()
18
        setDisplayOptions(!displayOptions)
19
    }
20
 
21
    const getAdminUrl = async (e) => {
22
        e.preventDefault()
23
        try {
24
            const { data } = await axios.get('/backend/signin-admin')
25
            if (data.success) return window.open(data.data);
26
        } catch (error) {
27
            console.log('>>: error > ', error)
28
        }
29
    }
30
 
4250 stevensc 31
    return (
32
        <li>
4251 stevensc 33
            <a
34
                href="#"
35
                className="header__option"
36
                onClick={handleDisplay}
37
            >
38
                <Avatar
39
                    imageUrl={image}
40
                    name={name}
41
                    size='md'
42
                />
4257 stevensc 43
                <span>Me <ArrowDropDownIcon className='user__option-icon' /></span>
4251 stevensc 44
            </a>
45
            <div className={`user__options-dropdown ${displayOptions ? 'fadeIn' : 'fadeOut'}`}>
4257 stevensc 46
                <div className='user__options-description'>
47
                    <div className='user__options-info'>
48
                        <Avatar
49
                            imageUrl={image}
50
                            name={name}
4260 stevensc 51
                            size='xl'
4257 stevensc 52
                        />
53
                        <h3>{name}</h3>
54
                    </div>
4260 stevensc 55
                    <a href='#' className='btn__profile'>
4257 stevensc 56
                        View profile
4260 stevensc 57
                    </a>
4257 stevensc 58
                </div>
4261 stevensc 59
                {(adminUrl || impersonateUrl) &&
60
                    <div className='user__options-item'>
61
                        <h3>Admin</h3>
62
                        <ul>
63
                            {adminUrl &&
64
                                <li>
65
                                    <a href="#" onClick={getAdminUrl} >Administración</a>
66
                                </li>
67
                            }
68
                            {impersonateUrl &&
69
                                <li>
70
                                    <a href="/impersonate">Personificar otro usuario</a>
71
                                </li>
72
                            }
73
                        </ul>
74
                    </div>
75
                }
4251 stevensc 76
                <ul>
77
                    <li>
78
                        <a href="/account-settings">Configuración de la cuenta</a>
79
                    </li>
80
                    <li>
81
                        <a href="/privacy-policy">Política de privacidad</a>
82
                    </li>
83
                    <li>
84
                        <a href="/cookies">Política de cookies</a>
85
                    </li>
86
                    <li className='logOutContainer'>
87
                        <a className='logOutContainer__a' href="/signout">
88
                            Cerrar sesión
89
                        </a>
90
                    </li>
91
                </ul>
92
            </div >
4250 stevensc 93
        </li>
94
    )
95
}
96
 
97
export default UserOptions