Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

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

Rev 4814 Rev 4844
Línea 1... Línea 1...
1
/* eslint-disable react/prop-types */
1
/* eslint-disable react/prop-types */
2
import React, { useEffect, useRef, useState } from 'react'
2
import React, { useEffect, useRef, useState } from 'react'
3
import './HeaderOptions.scss'
3
import './HeaderOptions.scss'
4
import './Dropdowns.scss'
4
import './Dropdowns.scss'
5
import useOutsideClick from '../../../hooks/useOutsideClick'
5
import useOutsideClick from '../../../hooks/useOutsideClick'
-
 
6
import axios from '../../../utils/axios'
Línea 6... Línea 7...
6
 
7
 
7
const HeaderOptions = ({ Icon, title, url, childs = [], isMobile = false }) => {
8
const HeaderOptions = ({ Icon, title, url, childs = [], isMobile = false, ajaxRequest }) => {
8
    const [displayMenu, setDisplayMenu] = useState(false)
9
    const [displayMenu, setDisplayMenu] = useState(false)
9
    const menu = useRef(null)
10
    const menu = useRef(null)
Línea 10... Línea 11...
10
    const outsideClick = useOutsideClick(menu)
11
    const outsideClick = useOutsideClick(menu)
11
 
12
 
12
    useEffect(() => {
13
    useEffect(() => {
Línea -... Línea 14...
-
 
14
        if (outsideClick) setDisplayMenu(false)
-
 
15
    }, [outsideClick])
-
 
16
 
-
 
17
    const handleAjaxRequest = async () => {
-
 
18
        try {
-
 
19
            const { data } = await axios.get(url)
-
 
20
            if (data.success) window.open(data.data, '_backend')
-
 
21
        } catch (error) {
-
 
22
            console.log('>>: error > ', error)
13
        if (outsideClick) setDisplayMenu(false)
23
        }
14
    }, [outsideClick])
24
    }
15
 
25
 
16
    return (
26
    return (
17
        <li ref={menu} className={!isMobile && 'd-none d-md-block'}>
27
        <li ref={menu} className={!isMobile && 'd-none d-md-block'}>
18
            <a
28
            <a
-
 
29
                href={`/${url}`}
-
 
30
                className={`header__option ${isMobile && 'mobile'} ${displayMenu && 'active'}`}
-
 
31
                onClick={(e) => {
-
 
32
                    if (ajaxRequest) {
19
                href={url}
33
                        e.preventDefault()
20
                className={`header__option ${isMobile && 'mobile'} ${displayMenu && 'active'}`}
34
                        handleAjaxRequest()
21
                onClick={(e) => {
35
                    }
22
                    if (childs.length) {
36
                    if (childs.length) {
23
                        e.preventDefault()
37
                        e.preventDefault()