Rev 3112 | Rev 3146 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
import { useCallback } from 'react'
import { useFetch } from '../useFetch'
export function useHabits({ url }) {
const {
data: { items: habits, link_add, total },
isLoading: loading,
mutate
} = useFetch(url)
const addHabit = useCallback(
(newHabit) => {
const newHabits = [...habits, newHabit]
mutate(newHabits)
},
[habits, mutate]
)
const deleteHabit = useCallback(
(habitId) => {
const newHabits = habits.filter((habit) => habit.id !== habitId)
mutate(newHabits)
},
[habits, mutate]
)
const updateHabit = useCallback(
(updatedHabit) => {
const newHabits = habits.map((habit) =>
habit.id === updatedHabit.id ? updatedHabit : habit
)
mutate(newHabits)
},
[habits, mutate]
)
return {
loading,
habits,
addUrl: link_add,
total,
addHabit,
deleteHabit,
updateHabit
}
}