Rev 3432 | 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 } = data;const addItem = useCallback((newItem) => {const newItems = [newItem, ...items];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 ? { ...item, ...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>);}