1.0.0 • Published 7 years ago

react-device-storage v1.0.0

Weekly downloads
14
License
MIT
Repository
github
Last release
7 years ago

react-device-storage

An unified package for saving, reading and deleting data from/to sessionStorage, localStorage or cookies. If user's device doesn't support sessionStorage and/or localStorage, the package uses cookies as a fallback. Note it's designed for browsers only.

Installation

npm install --save react-device-storage

API

cookies()

Enables using of cookies.

Returns this, so you can manipulate with data directly.

localStorage()

Enables using of localStorage.

Returns this, so you can manipulate with data directly.

sessionStorage()

Enables using of sessionStorage.

Returns this, so you can manipulate with data directly.

save(key, value)

Saves data in selected storage. key should be a 'string', value may be whatever you want to store.

read(key)

Reads data from selected storage.

delete(key)

Deletes data from selected storage.

Options

cookieFallback

Enable or disable cookies fallback (boolean)

cookie

Object of settings for cookies

cookie.path

Cookie path Use / as the path if you want your cookie to be accessible on all pages. default /

cookie.maxAge

Relative max age of the cookie from when the client receives it (seconds) default 2592000 (30 days)

cookie.domain

Domain for the cookie Use https://*.yourdomain.com if you want to access the cookie in all your subdomains.

cookie.secure

Is only accessible through HTTPS? (boolean)

Example

import { Component } from 'react';
import DeviceStorage from 'react-device-storage';

import HelloWorld from './HelloWorld';

export default class MyApp extends Component {
  construct(props) {
    super(props);

    this.storage = new DeviceStorage({
      cookieFallback: true,
      cookie: {
        secure: true
      }
    }).localStorage();

    this.state = {
      name: this.storage.read('name')
    };
  }

  setName() {
    let name = 'User Name';

    this.storage.save('name', name);
    this.setState({
      name
    });
  }

  render() {
    return (
      <HelloWorld userName={this.state.name} onClick={this.setName.bind(this)} />
    );
  }
}

Inspired by

License

This code is released under the MIT license. Please see LICENSE file for details.

Contact

Reporting of any issues are appreciated.

Our projects