Rev 3328 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
import React, { createContext, useCallback } from 'react'import { useFetch } from '@hooks'export const HabitProgressContext = createContext()export default function HabitProgressProvider({ url, name, children }) {const { data, isLoading, mutate } = useFetch(url, {link_add: '',items: [],total: 0})const { link_add, items, total } = dataconst addItem = useCallback((newItem) => {const newItems = [...items, newItem]mutate({ ...data, items: newItems })},[items, mutate])const removeItem = useCallback((itemId) => {const newItems = items.filter((item) => item.id !== itemId)mutate({ ...data, items: newItems })},[items, mutate])const editItem = useCallback((updatedItem) => {const newItems = items.map((item) =>item.id === updatedItem.id ? updatedItem : item)mutate({ ...data, items: newItems })},[items, mutate])const getItemById = useCallback((itemId) => items.find((item) => item.id === itemId),[items])return (<HabitProgressContext.Providervalue={{loading: isLoading,addUrl: link_add,registers: items,addItem,editItem,removeItem,getItemById,habitName: name,total}}>{children}</HabitProgressContext.Provider>)}