Rev 3416 | 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 PurposesContext = createContext()export default function PurposesProvider({ url, children }) {const { data, isLoading: loading, mutate } = useFetch(url, { items: [] })const { items: purposes, link_add, total } = dataconst 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>)}