Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 3416 | Ir a la última revisión | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 3416 Rev 3432
Línea 1... Línea 1...
1
import React, { createContext, useCallback } from "react";
1
import React, { createContext, useCallback } from 'react'
Línea 2... Línea 2...
2
 
2
 
Línea 3... Línea 3...
3
import { useFetch } from "@hooks";
3
import { useFetch } from '@hooks'
Línea 4... Línea 4...
4
 
4
 
5
export const ParadigmsContext = createContext();
5
export const ParadigmsContext = createContext()
6
 
6
 
Línea 7... Línea 7...
7
export default function ParadigmsProvider({ url, children }) {
7
export default function ParadigmsProvider({ url, children }) {
8
  const { data, loading: loading, mutate } = useFetch(url, { items: [] });
8
  const { data, isLoading: loading, mutate } = useFetch(url, { items: [] })
9
  const { items: paradigms, link_add, total } = data;
9
  const { items: paradigms, link_add, total } = data
10
 
10
 
11
  const addParadigm = useCallback(
11
  const addParadigm = useCallback(
12
    (newParadigm) => {
12
    (newParadigm) => {
13
      const newParadigms = [newParadigm, ...paradigms];
13
      const newParadigms = [newParadigm, ...paradigms]
Línea 14... Línea 14...
14
      mutate({ ...data, items: newParadigms });
14
      mutate({ ...data, items: newParadigms })
15
    },
15
    },
16
    [paradigms, mutate]
16
    [paradigms, mutate]
17
  );
17
  )
18
 
18
 
19
  const removeParadigm = useCallback(
19
  const removeParadigm = useCallback(
20
    (paradigmId) => {
20
    (paradigmId) => {
21
      const newParadigms = paradigms.filter(
21
      const newParadigms = paradigms.filter(
22
        (paradigm) => paradigm.id !== paradigmId
22
        (paradigm) => paradigm.id !== paradigmId
Línea 23... Línea 23...
23
      );
23
      )
24
      mutate({ ...data, items: newParadigms });
24
      mutate({ ...data, items: newParadigms })
25
    },
25
    },
26
    [paradigms, mutate]
26
    [paradigms, mutate]
27
  );
27
  )
28
 
28
 
29
  const updateParadigm = useCallback(
29
  const updateParadigm = useCallback(
30
    (updatedParadigm) => {
30
    (updatedParadigm) => {
31
      const newParadigms = paradigms.map((paradigm) =>
31
      const newParadigms = paradigms.map((paradigm) =>
Línea 32... Línea 32...
32
        paradigm.id === updatedParadigm.id ? updatedParadigm : paradigm
32
        paradigm.id === updatedParadigm.id ? updatedParadigm : paradigm
33
      );
33
      )
34
      mutate({ ...data, items: newParadigms });
34
      mutate({ ...data, items: newParadigms })
35
    },
35
    },
Línea 36... Línea 36...
36
    [paradigms, mutate]
36
    [paradigms, mutate]
37
  );
37
  )
38
 
38
 
39
  const getParadigmById = useCallback(
39
  const getParadigmById = useCallback(
Línea 49... Línea 49...
49
        addUrl: link_add,
49
        addUrl: link_add,
50
        total,
50
        total,
51
        addParadigm,
51
        addParadigm,
52
        removeParadigm,
52
        removeParadigm,
53
        updateParadigm,
53
        updateParadigm,
54
        getParadigmById,
54
        getParadigmById
55
      }}
55
      }}
56
    >
56
    >
57
      {children}
57
      {children}
58
    </ParadigmsContext.Provider>
58
    </ParadigmsContext.Provider>
59
  );
59
  )
60
}
60
}