Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

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

Rev Autor Línea Nro. Línea
6694 stevensc 1
import React from 'react'
2
import { axios } from '../../../../utils'
3
import { Link } from 'react-router-dom'
4
 
5
const LinkItem = ({ href, ajax, childs, img, label }) => {
6
  const handleAjaxRequest = async (event, url) => {
7
    event.preventDefault()
8
    try {
9
      const { data } = await axios.get(url)
10
      if (data.success) window.open(data.data, '_backend')
11
    } catch (error) {
12
      console.log('>>: error > ', error)
13
    }
14
  }
15
 
16
  return (
6695 stevensc 17
    <>
6694 stevensc 18
      <Link
19
        to={`/${href}`}
20
        onClick={(e) => {
21
          if (ajax) {
22
            handleAjaxRequest(e, href)
23
            return
24
          }
25
 
26
          if (childs.length) {
27
            e.preventDefault()
28
          }
29
        }}
30
      >
31
        <img src={img} className="img-icon lg" />
32
        <p>{label}</p>
33
      </Link>
34
      {Boolean(childs.length) && (
35
        <nav className="navLinkDropdown">
36
          <ul>
37
            {childs.map((child, _i) => (
38
              <li key={_i}>
39
                <Link
40
                  to={`/${child.href}`}
41
                  onClick={(e) => child.childs?.length && e.preventDefault()}
42
                >
43
                  {child.label}
44
                  {Boolean(child.childs?.length) && (
45
                    <i className="fa fa-angle-right" />
46
                  )}
47
                </Link>
48
                {Boolean(child.childs?.length) && (
49
                  <nav className="navigation-level_three">
50
                    <ul>
51
                      {child.childs?.map((levelThree, index) => (
52
                        <li key={index}>
6707 stevensc 53
                          <Link to={`/${levelThree.href}`}>
54
                            {levelThree.label}
55
                          </Link>
6694 stevensc 56
                        </li>
57
                      ))}
58
                    </ul>
59
                  </nav>
60
                )}
61
              </li>
62
            ))}
63
          </ul>
64
        </nav>
65
      )}
6695 stevensc 66
    </>
6694 stevensc 67
  )
68
}
69
 
70
export default LinkItem