0.1.1 • Published 5 years ago

context-storage v0.1.1

Weekly downloads
4
License
MIT
Repository
github
Last release
5 years ago

Context Storage

npm gzip size Build Status Code Coverage MIT Licensed

React hook for sharing localStorage via context.

values are automatically converted to and from JSON.

Install

$ npm install --save context-storage

or

$ yarn add context-storage

requires: any version of react with hooks. (react >= 16.8.0)

Usage

import React from 'react'
import createStorage from 'context-storage'

const [Provider, useStorage] = createStorage('local-storage-key')

const Title = () => <h1>Hello {useStorage()[0]}!</h1>

const UserNameInput = () => {
  const [name, setName] = useStorage()
  const handleChange = ({ target }) => setName(target.value)
  return <input value={name || ''} onChange={handleChange} />
}

export const App = () => (
  <Provider>
    <Title />
    <UserNameInput />
  </Provider>
)

Arguments

key is the only required argument.

nametypedescription
keystringwhich key in localStorage to use
fallbackanyfallback when localStorage is empty
replacerfunction︱arraypassed to JSON.stringify
reviverfunctionpassed to JSON.parse
storageobjectwith getItem and setItem methods

Implementation

the value will always be encoded as JSON when saving to localStorage. and decoded when read back.

it's safe to use objects and arrays, as long as they are non-circular.

following JSON standards, it's to be expected that, without custom replacer/reviver:

  • prototypes will be lost;
  • Functions will get discarded;
  • Dates will be cast into ISO 8601 strings.

Map and Set can be used with custom replacer and reviver arguments.

0.1.1

5 years ago

0.1.0

5 years ago

0.0.0

5 years ago