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 ParadigmsContext = createContext();export default function ParadigmsProvider({ url, children }) {const { data, isLoading: loading, mutate } = useFetch(url, { items: [] });const { items: paradigms, link_add, total } = data;const addParadigm = useCallback((newParadigm) => {const newParadigms = [newParadigm, ...paradigms];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>);}