Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 3504 | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 3504 Rev 3510
Línea 1... Línea 1...
1
import { useCallback } from 'react';
1
import { useCallback } from 'react';
2
import { useSearchParams } from 'react-router-dom';
2
import { useSearchParams } from 'react-router-dom';
Línea 3... Línea 3...
3
 
3
 
4
import { debounce } from '@shared/utils';
-
 
Línea 5... Línea 4...
5
import { useFetch } from './useFetch';
4
import { debounce } from '@shared/utils';
6
 
5
 
Línea 7... Línea -...
7
export function useSearch(url = '', { initialParams = {} } = {}) {
-
 
8
  const [searchParams, setSearchParams] = useSearchParams();
-
 
9
 
-
 
10
  const initialSearchURLParams = new URLSearchParams({
-
 
11
    ...Object.fromEntries(searchParams.entries()),
-
 
12
    ...initialParams
6
export function useSearch() {
Línea 13... Línea -...
13
  });
-
 
14
 
-
 
15
  const searchTerm = searchParams.get('search') || '';
7
  const [searchParams, setSearchParams] = useSearchParams();
16
 
8
 
-
 
9
  const searchTerm = searchParams.get('search') || '';
17
  const { data, loading, refetch } = useFetch(url + '?' + initialSearchURLParams.toString());
10
 
18
 
11
  const handleSearch = useCallback(
19
  const updateSearchParams = useCallback(
12
    debounce((value) => {
20
    (newParams) => {
13
      searchParams.set('search', value);
Línea 21... Línea -...
21
      setSearchParams(newParams, { replace: true });
-
 
22
    },
-
 
23
    [setSearchParams]
-
 
24
  );
-
 
25
 
-
 
26
  const setSearchParam = useCallback(
-
 
27
    (key, value) => {
-
 
28
      const newParams = new URLSearchParams(searchParams);
-
 
29
      if (value !== undefined && value !== null && value !== '') {
-
 
30
        newParams.set(key, value);
-
 
31
      } else {
-
 
32
        newParams.delete(key);
-
 
33
      }
-
 
34
      updateSearchParams(newParams);
-
 
35
    },
-
 
36
    [searchParams, updateSearchParams]
-
 
37
  );
-
 
38
 
14
      setSearchParams(searchParams);
39
  const handleSearch = debounce((value) => {
-
 
40
    setSearchParam('search', value);
-
 
41
  }, 500);
15
    }, 500),
42
 
16
    []
43
  return {
-
 
44
    data,
17
  );
45
    loading,
18