29 lines
840 B
JavaScript
29 lines
840 B
JavaScript
import { useState, useEffect } from "react";
|
|
|
|
export default function useFavorites() {
|
|
const [favorites, setFavorites] = useState([]);
|
|
|
|
useEffect(() => {
|
|
fetch('http://localhost:5000/favorites')
|
|
.then(res => res.json())
|
|
.then(setFavorites);
|
|
}, []);
|
|
|
|
const addToFavorites = async (item) => {
|
|
const res = await fetch('http://localhost:5000/favorites', {
|
|
method: 'POST',
|
|
headers: { 'Content-Type': 'application/json' },
|
|
body: JSON.stringify(item)
|
|
});
|
|
const newItem = await res.json();
|
|
setFavorites([...favorites, newItem]);
|
|
};
|
|
|
|
const removeFromFavorites = async (id) => {
|
|
await fetch(`http://localhost:5000/favorites/${id}`, { method: 'DELETE' });
|
|
setFavorites(favorites.filter(item => item.id !== id));
|
|
};
|
|
|
|
return { favorites, addToFavorites, removeFromFavorites };
|
|
}
|