Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 6830 | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
6830 stevensc 1
import React from 'react'
2
import { axios } from '../../utils'
3
import { useDispatch } from 'react-redux'
4
import { addNotification } from '../../redux/notification/notification.actions'
5
import parse from 'html-react-parser'
6
 
7
import Avatar from '../UI/AvatarImage'
8
 
9
const CompanyActions = ({
10
  cover,
11
  companyId,
12
  name,
13
  image,
14
  actionLinks,
15
  overview,
16
  refetch,
17
}) => {
18
  const dispatch = useDispatch()
19
 
20
  const handleButtonAction = async (link) => {
21
    const { data: response } = await axios.post(link)
22
    if (response.success) {
23
      dispatch(addNotification({ style: 'success', msg: response.data }))
24
      refetch()
25
    } else {
26
      dispatch(
27
        addNotification({ style: 'danger', msg: 'ha ocurrido un error' })
28
      )
29
    }
30
  }
31
 
32
  return (
33
    <div className="group__actions">
34
      <div className="group__actions-cover">
35
        <img
36
          src={`/storage/type/company-cover/code/${companyId}/${
37
            cover ? `filename/${cover}` : ''
38
          }`}
39
          alt="Profile cover"
40
          className="sidebar__cover"
41
        />
42
      </div>
43
      <div className="group__actions-body">
44
        <Avatar
45
          imageUrl={`/storage/type/company/code/${companyId}/${
46
            image ? `filename/${image}` : ''
47
          }`}
48
          size="xl"
49
          name={name}
50
        />
51
        <h1>{name}</h1>
6831 stevensc 52
        {overview && parse(overview)}
6830 stevensc 53
        <div className="row" style={{ gap: '.5rem' }}>
54
          {actionLinks?.link_contact && (
55
            <a
56
              href={actionLinks?.link_contact}
57
              className="button btn btn-primary"
58
            >
59
              Mensaje
60
            </a>
61
          )}
62
          {actionLinks?.link_unfollow && (
63
            <button
64
              className="button btn btn-secondary"
65
              onClick={() => handleButtonAction(actionLinks?.link_unfollow)}
66
            >
67
              Dejar de seguir
68
            </button>
69
          )}
70
          {actionLinks?.link_follow && (
71
            <button
72
              className="btn btn-primary"
73
              onClick={() => handleButtonAction(actionLinks?.link_follow)}
74
            >
75
              Seguir
76
            </button>
77
          )}
78
          {actionLinks?.link_request && actionLinks?.link_unfollow && (
79
            <button
80
              className="button btn btn-secondary"
81
              onClick={() => handleButtonAction(actionLinks?.link_request)}
82
            >
83
              ¿Trabaja en esta empresa?
84
            </button>
85
          )}
86
          {actionLinks?.link_accept && (
87
            <button
88
              className="button btn btn-primary"
89
              onClick={() => handleButtonAction(actionLinks?.link_accept)}
90
            >
91
              Aceptar
92
            </button>
93
          )}
94
          {actionLinks?.link_cancel && (
95
            <button
96
              title=""
97
              className="button btn btn-secondary"
98
              onClick={() => handleButtonAction(actionLinks?.link_cancel)}
99
            >
100
              Cancelar
101
            </button>
102
          )}
103
          {actionLinks?.link_reject && (
104
            <button
105
              title=""
106
              className="button btn btn-secondary"
107
              onClick={() => handleButtonAction(actionLinks?.link_reject)}
108
            >
109
              Rechazar
110
            </button>
111
          )}
112
          {actionLinks?.link_leave && (
113
            <button
114
              data-link="{{>link_leave}}"
115
              title=""
116
              className="button btn btn-secondary"
117
              onClick={() => handleButtonAction(actionLinks?.link_leave)}
118
            >
119
              Abandonar esta empresa
120
            </button>
121
          )}
122
        </div>
123
      </div>
124
    </div>
125
  )
126
}
127
 
128
export default CompanyActions