Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 1193 | Ir a la última revisión | | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1192 stevensc 1
import React from 'react'
2
import { useState } from 'react';
3
import { useDispatch } from 'react-redux';
4
import { addNotification } from '../../../../redux/notification/notification.actions';
5
 
6
const LikeButton = ({ likeUrl }) => {
7
 
8
    const [isLike, setIsLike] = useState(false);
9
    const [likesState, setLikesState] = useState(0);
10
    const dispatch = useDispatch()
11
 
12
    const handleClick = (url) => {
13
        if (url) {
14
            axios.post(url)
15
                .then((res) => {
16
                    const { success, data } = res.data;
17
                    if (!success) {
18
                        setIsLike(!isLike);
19
                        dispatch(addNotification({
20
                            style: "danger",
21
                            msg: data,
22
                        }));
23
                    } else {
24
                        setLikesState(data.likes)
25
                        setIsLike(!isLike);
26
                    }
27
                });
28
        }
29
        else {
30
            setIsLike(!isLike)
31
        }
32
    }
33
 
34
    return (
35
        <button
36
            type="button"
37
            className={isLike ? "btn-unlike" : "btn-like"}
38
            onClick={() => handleClick(likeUrl)}
39
        >
40
            <i className={isLike ? "fas fa-heart" : "far fa-heart"}></i>
41
            {likesState}
42
        </button>
43
    )
44
}
45
 
46
export default LikeButton