Rev 3140 | Rev 3373 | 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 ParadigmsContext = createContext()export default function ParadigmsProvider({ url, children }) {const { data, isLoading: loading, mutate } = useFetch(url, { items: [] })const { items: paradigms, link_add, total } = dataconst addParadigm = useCallback((newParadigm) => {const newParadigms = [...paradigms, newParadigm]mutate({ ...data, items: newParadigms })},[paradigms, mutate])const removeParadigm = useCallback((paradigmId) => {const newParadigms = paradigms.filter((paradigm) => paradigm.id !== paradigmId)mutate({ ...data, items: newParadigms })},[paradigms, mutate])const updateParadigm = useCallback((updatedParadigm) => {const newParadigms = paradigms.map((paradigm) =>paradigm.id === updatedParadigm.id ? updatedParadigm : paradigm)mutate({ ...data, items: newParadigms })},[paradigms, mutate])const getParadigmById = useCallback((paradigmId) => paradigms.find((paradigm) => paradigm.id === paradigmId),[paradigms])return (<ParadigmsContext.Providervalue={{loading,paradigms,addUrl: link_add,total,addParadigm,removeParadigm,updateParadigm,getParadigmById}}>{children}</ParadigmsContext.Provider>)}