JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 435
  • Score
    100M100P100Q105982F
  • License MIT

react-search-params is a simple hook to control current url search. Also provides so methods that extend URLSearchParams.

Package Exports

  • @resourge/react-search-params
  • @resourge/react-search-params/dist/index.js
  • @resourge/react-search-params/dist/main.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@resourge/react-search-params) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

React-search-params

react-search-params is a simple hook to control current url. Also provides some methods that extend URLSearchParams.

Features

  • Add's beforeURLChange and URLChange event to native javascript.
  • Has no dependencies.
  • It uses javascript URLSearchParams to parse search.
  • Decodes search params into primitive values. (ex: "?productId=10&productName=Apple" will become { product: 10, productName: "Apple" }).
  • react-search-params doesn't do navigation by itself. This gives the developer the control or the ability to use it's own navigation system. see more in Usage
  • parseParams, parseSearch method's that extend URLSearchParams

Installation

Install using Yarn:

yarn add @resourge/react-search-params

or NPM:

npm install @resourge/react-search-params --save

Usage

const [params, setParams] = useSearchParams(
  // Method to control navigation
  ({ url }) => window.history.replaceState(null, '', url.href),
  // Ex: react-router ({ url }) => history.replace(url.href),
  { }, // default params
  { } // config
)

Quickstart

import React from 'react';
import { useSearchParams } from '@resourge/react-search-params';

export default function Form() {
  const [params, setParams] = useSearchParams(
    ({ url }) => window.history.replaceState(null, '', url.href)
  )

  return (
    <div> 
      App
      <button onClick={() => setParams({ productId: Math.random() })}>
        Set new params
      </button>
    </div>
  );
}

Config

Name Type Required Description
navigate (config: SearchParams<T>) => void true Method to navigate.
defaultParams object false To define default values
config { hash?: boolean } false When hash is true it will use URL hash instead of URL to get search

useUrl

Returns the current URL object.

const url = useUrl();

Methods

parseParams

Params object into search path

import { parseParams } from '@resourge/react-search-params';

parseParams({
  productId: 10,
  productName: 'Apple'
})
// ?productId=10&productName=Apple

parseSearch

Converts search string into object.

import { parseSearch } from '@resourge/react-search-params';

parseSearch('?productId=10&productName=Apple')
// {
//   productId: 10,
//   productName: 'Apple'
// }

License

MIT Licensed.