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, { API_URL } from '../../utils/api' 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 (
{props.description}
{date.format(new Date(props.createdAt), 'DD/MM/YYYY', true)}