Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 3112 | Rev 3146 | Ir a la última revisión | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
3114 stevensc 1
import { useCallback } from 'react'
3112 stevensc 2
import { useFetch } from '../useFetch'
3
 
4
export function useHabits({ url }) {
3114 stevensc 5
  const {
6
    data: { items: habits, link_add, total },
7
    isLoading: loading,
8
    mutate
9
  } = useFetch(url)
3112 stevensc 10
 
3114 stevensc 11
  const addHabit = useCallback(
12
    (newHabit) => {
13
      const newHabits = [...habits, newHabit]
14
      mutate(newHabits)
15
    },
16
    [habits, mutate]
17
  )
3112 stevensc 18
 
3114 stevensc 19
  const deleteHabit = useCallback(
20
    (habitId) => {
21
      const newHabits = habits.filter((habit) => habit.id !== habitId)
22
      mutate(newHabits)
23
    },
24
    [habits, mutate]
25
  )
26
 
27
  const updateHabit = useCallback(
28
    (updatedHabit) => {
29
      const newHabits = habits.map((habit) =>
30
        habit.id === updatedHabit.id ? updatedHabit : habit
31
      )
32
      mutate(newHabits)
33
    },
34
    [habits, mutate]
35
  )
36
 
37
  return {
38
    loading,
39
    habits,
40
    addUrl: link_add,
41
    total,
42
    addHabit,
43
    deleteHabit,
44
    updateHabit
45
  }
3112 stevensc 46
}