Proyectos de Subversion LeadersLinked - SPA

Rev

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

Rev 2887 Rev 3719
Línea 1... Línea 1...
1
import { useSearchParams } from 'react-router-dom'
1
import { useSearchParams } from 'react-router-dom';
2
 
2
 
3
export function useSearchQuery() {
3
export function useSearchQuery() {
4
  const [searchParams, setSearchParams] = useSearchParams()
4
  const [searchParams, setSearchParams] = useSearchParams();
5
 
5
 
6
  const getParam = (key) => searchParams.get(key) ?? ''
6
  const getParam = (key) => searchParams.get(key) ?? '';
7
 
7
 
8
  const setParam = (key, value) => {
8
  const setParam = (key, value) => {
9
    if (!value) return deleteParam(key)
9
    if (!value) return deleteParam(key);
10
    searchParams.set(key, value)
10
    searchParams.set(key, value);
11
    setSearchParams(searchParams)
11
    setSearchParams(searchParams);
12
  }
12
  };
13
 
13
 
14
  const deleteParam = (key) => {
14
  const deleteParam = (key) => {
15
    searchParams.delete(key)
15
    searchParams.delete(key);
16
    setSearchParams(searchParams)
16
    setSearchParams(searchParams);
17
  }
17
  };
18
 
18
 
19
  const getAllParams = () => {
19
  const getAllParams = () => {
20
    return Object.fromEntries([...searchParams.entries()])
20
    return Object.fromEntries([...searchParams.entries()]);
21
  }
21
  };
22
 
22
 
23
  const getStringParams = () => {
23
  const getStringParams = () => {
24
    const paramsString = searchParams.toString()
24
    const paramsString = searchParams.toString();
25
    return paramsString.length > 0 ? `?${paramsString}` : ''
25
    return paramsString.length > 0 ? `?${paramsString}` : '';
26
  }
26
  };
27
 
27
 
28
  return {
28
  return {
29
    getParam,
29
    getParam,
30
    setParam,
30
    setParam,
31
    deleteParam,
31
    deleteParam,
32
    getAllParams,
32
    getAllParams,
33
    getStringParams
33
    getStringParams
34
  }
34
  };
35
}
35
}