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 PurposesContext = createContext();export default function PurposesProvider({ url, children }) {const { data, isLoading: loading, mutate } = useFetch(url, { items: [] });const { items: purposes, link_add, total } = data;const addPurpose = useCallback((newPurpose) => {const newPurposes = [newPurpose, ...purposes];mutate({ ...data, items: newPurposes });},[purposes, mutate]);const removePurpose = useCallback((purposeId) => {const newPurposes = purposes.filter((purpose) => purpose.id !== purposeId);mutate({ ...data, items: newPurposes });},[purposes, mutate]);const updatePurpose = useCallback((updatedPurpose) => {const newPurposes = purposes.map((purpose) =>purpose.id === updatedPurpose.id ? updatedPurpose : purpose);mutate({ ...data, items: newPurposes });},[purposes, mutate]);const getPurposeById = useCallback((purposeId) => purposes.find((purpose) => purpose.id === purposeId),[purposes]);return (<PurposesContext.Providervalue={{loading,purposes,addUrl: link_add,total,addPurpose,removePurpose,updatePurpose,getPurposeById}}>{children}</PurposesContext.Provider>);}