Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

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

Rev Autor Línea Nro. Línea
4243 stevensc 1
/* eslint-disable react/prop-types */
4809 stevensc 2
import React, { useState } from 'react'
4247 stevensc 3
import './HeaderOptions.scss'
4432 stevensc 4
import './Dropdowns.scss'
4243 stevensc 5
 
4741 stevensc 6
const HeaderOptions = ({ Icon, title, url, childs = [], isMobile = false }) => {
4809 stevensc 7
    const [displayMenu, setDisplayMenu] = useState(false)
4243 stevensc 8
    return (
4744 stevensc 9
        <li className={!isMobile && 'd-none d-md-block'}>
4765 stevensc 10
            <a
11
                href={url}
12
                className={`header__option ${isMobile && 'mobile'}`}
4809 stevensc 13
                onClick={(e) => {
14
                    if (childs.length) {
15
                        e.preventDefault()
16
                        setDisplayMenu(!displayMenu)
17
                    }
18
                }}
4766 stevensc 19
                target='framename'
4763 stevensc 20
            >
4243 stevensc 21
                {Icon && <Icon className="header__option-icon" />}
4253 stevensc 22
                <span>{title}</span>
4243 stevensc 23
            </a>
4427 stevensc 24
            {!!childs.length &&
4809 stevensc 25
                <nav className={`nav__options-dropdown ${isMobile && 'mobile'} ${displayMenu && 'show'}`}>
4427 stevensc 26
                    <ul>{childs.map((linkOption, index) =>
27
                        <li key={index}>
4449 stevensc 28
                            {linkOption.childs?.length
4427 stevensc 29
                                ? <a href='/' onClick={(e) => e.preventDefault()}>{linkOption.label}</a>
4766 stevensc 30
                                : <a href={linkOption.href} target='framename'>{linkOption.label}</a>
4427 stevensc 31
                            }
4448 stevensc 32
                            {!!linkOption.childs?.length &&
4427 stevensc 33
                                <nav className='navLinkLevelThree'>
34
                                    <ul>
35
                                        {linkOption.childs?.map((optionsChild, index) =>
36
                                            <li key={index}>
4766 stevensc 37
                                                <a href={optionsChild.href} target='framename'>{optionsChild.label}</a>
4427 stevensc 38
                                            </li>
39
                                        )}
40
                                    </ul>
41
                                </nav>
42
                            }
43
                        </li>
44
                    )}
45
                    </ul>
46
                </nav>
47
            }
4247 stevensc 48
        </li>
4243 stevensc 49
    )
50
}
51
 
52
export default HeaderOptions