Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 2880 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |

import { useSearchParams } from 'react-router-dom'

export function useSearchQuery() {
  const [searchParams, setSearchParams] = useSearchParams()

  const getParam = (key) => searchParams.get(key) ?? ''

  const setParam = (key, value) => {
    if (!value) return deleteParam(key)
    searchParams.set(key, value)
    setSearchParams(searchParams)
  }

  const deleteParam = (key) => {
    searchParams.delete(key)
    setSearchParams(searchParams)
  }

  const getAllParams = () => {
    return Object.fromEntries([...searchParams.entries()])
  }

  const getStringParams = () => {
    const paramsString = searchParams.toString()
    return paramsString.length > 0 ? `?${paramsString}` : ''
  }

  return {
    getParam,
    setParam,
    deleteParam,
    getAllParams,
    getStringParams
  }
}