1.0.0 • Published 5 years ago

url-state-manager v1.0.0

Weekly downloads
2
License
Apache-2.0
Repository
-
Last release
5 years ago

Url State Manager

A library for managing url parameters.

Set a parameter to the url search
import {fromUrl, toUrl} from 'url-state-manager';

toUrl('p1', 0);       // http://www.example.com?p1=0
Get a parameter from the url search
import {fromUrl, toUrl} from 'url-state-manager';

// If the parameter is set the default value is ignored
// http://wwww.example.com?p1=4
fromUrl('p1', 0);     // 4

// If the parameter is missing the default value is returned
// http://www.example.com
fromUrl('p1', 0);     // 0

React hook examples

Mapping an object of initial values to url hooks

import React from 'react';
import {useOneStateFromUrl, useStateFromUrl} from 'url-state-manager';

export const App = ({}) => {
  const {
    p1: [p1Val, setP1],
    p2: [p2Val, setP2],
  } = useStateFromUrl({p1: 0, p2: 'x'});
  return (
    <div className="App">
      <a onClick={() => setP1(prev => prev + 1)}>{p1Val}</a>
      <a onClick={() => setP2(prev => prev + 'x')}>{p2Val}</a>
    </div>
  );
};

Mapping a single parameter to a url hook

import React from 'react';
import {useOneStateFromUrl, useStateFromUrl} from 'url-state-manager';

export const App = ({}) => {
  const [p1Val, setP1] = useOneStateFromUrl('p1', 0);
  const [p2Val, setP2] = useOneStateFromUrl('p2', {x: 0});
  return (
    <div className="App">
      <a onClick={() => setP1(prev => prev + 1)}>{p1Val}</a>
      <a onClick={() => setP2(({x}) => ({x : x + 1}))}>{p2Val}</a>
    </div>
  );
};