Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 6695 | Ir a la última revisión | | 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 (
17
    <li>
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
 
35
      {Boolean(childs.length) && (
36
        <nav className="navLinkDropdown">
37
          <ul>
38
            {childs.map((child, _i) => (
39
              <li key={_i}>
40
                <Link
41
                  to={`/${child.href}`}
42
                  target="framename"
43
                  onClick={(e) => child.childs?.length && e.preventDefault()}
44
                >
45
                  {child.label}
46
                  {Boolean(child.childs?.length) && (
47
                    <i className="fa fa-angle-right" />
48
                  )}
49
                </Link>
50
                {Boolean(child.childs?.length) && (
51
                  <nav className="navigation-level_three">
52
                    <ul>
53
                      {child.childs?.map((levelThree, index) => (
54
                        <li key={index}>
55
                          <a href={`/${levelThree.href}`}>{levelThree.label}</a>
56
                        </li>
57
                      ))}
58
                    </ul>
59
                  </nav>
60
                )}
61
              </li>
62
            ))}
63
          </ul>
64
        </nav>
65
      )}
66
    </li>
67
  )
68
}
69
 
70
export default LinkItem