Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

| Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
6956 stevensc 1
import React, { useEffect, useState } from 'react'
2
import { axios } from '../../utils'
3
import { Modal } from 'react-bootstrap'
4
import { useSelector } from 'react-redux'
5
 
6
const StartConversationModal = ({ show, setConversation, onClose }) => {
7
  const [inmailPersons, setInmailPersons] = useState([])
8
 
9
  const [search, setSearch] = useState('')
10
  const labels = useSelector(({ intl }) => intl.labels)
11
 
12
  const handleSearch = ({ target }) => {
13
    setSearch(target.value)
14
  }
15
 
16
  const searchUsers = async (value) => {
17
    try {
18
      const { data } = await axios.get('/helpers/search-people?search=' + value)
19
      if (data.success) setInmailPersons(data.data)
20
    } catch (error) {
21
      console.log('>>: error > ', error)
22
    }
23
  }
24
 
25
  const handleInmailPerson = (uuid) => {
26
    axios.get(`/inmail/${uuid}`).then(({ data }) => {
27
      if (data.success) {
28
        const newConversation = data.data.find(
29
          (conversation) => conversation.uuid === uuid
30
        )
31
        setConversation(newConversation)
32
      }
33
    })
34
 
35
    onClose()
36
  }
37
 
38
  useEffect(() => {
39
    searchUsers(search)
40
  }, [search])
41
 
42
  return (
43
    <Modal show={show} onHide={onClose}>
44
      <Modal.Header closeButton>
45
        <Modal.Title>{labels.create_inmail}</Modal.Title>
46
      </Modal.Header>
47
      <Modal.Body>
48
        <div className="form-group">
49
          <label htmlFor="search-people">{labels.write_name}</label>
50
          <input
51
            type="email"
52
            className="form-control"
53
            aria-describedby="Buscador de personas"
54
            placeholder={labels.write_person_name}
55
            onChange={handleSearch}
56
          />
57
        </div>
58
        <div className="container">
59
          {inmailPersons.map((person) => {
60
            return (
61
              <div className="row" key={person.value}>
62
                <div className="col-8">
63
                  <p>{person.text}</p>
64
                </div>
65
                <div className="col-4">
66
                  <button
67
                    className="btn btn-primary"
68
                    onClick={() => handleInmailPerson(person.value)}
69
                  >
70
                    <i className="fa fa-check" />
71
                  </button>
72
                </div>
73
              </div>
74
            )
75
          })}
76
        </div>
77
      </Modal.Body>
78
    </Modal>
79
  )
80
}
81
 
82
export default StartConversationModal