import { useState, useEffect, useContext } from 'react'; import Link from 'next/link'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import { faStar } from '@fortawesome/free-solid-svg-icons'; import { faStar as farStar } from '@fortawesome/free-regular-svg-icons'; import date from 'date-and-time'; import { UserContext } from '../../contexts/UserContext'; import api from '../../utils/api'; import { API_URL } from '../../utils/config/config'; import '../FunctionCard/FunctionCard.css'; const FunctionComponentTop = (props) => { const { isAuth, user } = useContext(UserContext); const [isFavorite, setIsFavorite] = useState(false); useEffect(() => { if (isAuth && user.token != undefined) { fetchFavorite(); } }, [isAuth]); const fetchFavorite = async () => { try { const favoriteResponse = await api.get(`/favorites/${props.id}`, { headers: { 'Authorization': user.token } }); setIsFavorite(favoriteResponse.data.isFavorite); } catch {} } const toggleFavorite = async () => { if (isAuth && user.token != undefined) { try { if (isFavorite) { const response = await api.delete(`/favorites/${props.id}`, { headers: { 'Authorization': user.token } }); if (response.status === 200) return setIsFavorite(false); } const response = await api.post(`/favorites/${props.id}`, {}, { headers: { 'Authorization': user.token } }); if (response.status === 201) return setIsFavorite(true); } catch {} } } const handleError = (event) => { event.target.src = API_URL + "/images/functions/default.png"; } return (
{(isAuth) && } {props.title}

{props.title}

{props.description}

{props.categorie.name}

{date.format(new Date(props.createdAt), 'DD/MM/YYYY', true)}

); } export default FunctionComponentTop;