Rev 3373 | Rev 3432 | 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, loading, 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: loading,addUrl: link_add,registers: items,addItem,editItem,removeItem,getItemById,habitName: name,total,}}>{children}</HabitProgressContext.Provider>);}