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 != null) { 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 != null) { 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