Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

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

Rev Autor Línea Nro. Línea
1 www 1
import React, { useEffect, useState } from "react";
2885 stevensc 2
import { useDispatch } from "react-redux";
3
import { addNotification } from "../../../redux/notification/notification.actions";
2232 stevensc 4
import { axios } from "../../../utils";
1 www 5
 
6
const PeopleYouMayKnow = () => {
4006 stevensc 7
 
1 www 8
  const [peopleYouMayKnow, setPeopleYouMayKnow] = useState([]);
2885 stevensc 9
  const dispatch = useDispatch()
1 www 10
 
4006 stevensc 11
  const getSuggestion = async (url = `/helpers/people-you-may-know`) => {
12
    try {
13
      const { data } = await axios.get(url)
14
      const resData = [...data.data].slice(0, 3);
15
      if (data.success) setPeopleYouMayKnow(resData);
16
    } catch (error) {
17
      console.log(error);
18
    }
19
  }
20
 
2885 stevensc 21
  const handleConnect = (url) => {
22
    axios.post(url)
23
      .then(({ data }) => {
24
        if (!data.success) {
25
          return dispatch(addNotification({
26
            style: 'danger',
27
            msg: typeof data.data === 'string'
28
              ? data.data
29
              : 'Ha ocurrido un error'
30
          }))
31
        }
32
 
4006 stevensc 33
        dispatch(addNotification({ style: 'success', msg: data.data }))
2888 stevensc 34
        return getSuggestion()
2885 stevensc 35
      })
36
  }
37
 
4007 stevensc 38
  console.log('People rendered successfully')
39
 
4006 stevensc 40
  useEffect(() => {
41
    getSuggestion()
42
  }, []);
2888 stevensc 43
 
1 www 44
  return (
3921 stevensc 45
    <div className='peopleYouMayKnow'>
2890 stevensc 46
      <div className="sd-title d-flex align-items-center justify-content-between">
47
        <h3>Conecta con:</h3>
3921 stevensc 48
        <a href="/connection/people-you-may-know" target="_blank">
49
          Ver más
50
        </a>
2890 stevensc 51
      </div>
3837 stevensc 52
      <div className='suggest-list'>
3506 stevensc 53
        {peopleYouMayKnow.length
3921 stevensc 54
          ? peopleYouMayKnow.map(({ id, image, link_cancel, link_request, name, profile }) =>
55
            <div className='user' key={id}>
56
              <div className="w-100 d-flex align-items-center" style={{ gap: '.5rem' }}>
57
                <a href={profile} target="_blank" rel="noreferrer">
58
                  <img src={image} alt={`${name} profile image`} />
59
                </a>
60
                <h4>{name}</h4>
61
              </div>
62
              <div className="w-100 d-flex align-items-center justify-content-start" style={{ gap: '.5rem' }}>
63
                {link_request &&
64
                  <button
65
                    className="btn btn-primary"
66
                    onClick={() => handleConnect(link_request)}
67
                  >
68
                    Conectar
69
                  </button>
70
                }
71
                {link_cancel &&
72
                  <button
73
                    className="btn btn-secondary"
74
                    onClick={() => handleConnect(link_cancel)}
75
                  >
76
                    Cancelar
77
                  </button>
78
                }
79
              </div>
80
            </div>
81
          )
3506 stevensc 82
          : <div className="view-more">Sin sugerencias</div>
83
        }
2890 stevensc 84
      </div>
2885 stevensc 85
    </div >
1 www 86
  );
87
};
88
 
89
export default PeopleYouMayKnow;