1.4.7 • Published 5 years ago

react-simplex v1.4.7

Weekly downloads
39
License
ISC
Repository
github
Last release
5 years ago

react-simplex

React storage

Install:

npm i --save react-simplex

For web app

import { Simplex, SimplexConnect, SimplexMapToProps } from 'react-simplex';

Simplex.setStorageDriver(
  localStorage, // storage driver
  false         // driver is not async
)

Simplex.init('user',{},true);
await Simplex.init('todos',{},true);

For react-native

import { Simplex, SimplexConnect, SimplexMapToProps } from 'react-simplex';
import { AsyncStorage } from 'react-native';

Simplex.setStorageDriver(
  AsyncStorage, // storage driver
  true         // driver is async
)

Simplex.init('user',{},true);
Simplex.init('todos',{},true);

SimplexMapToProps

App.js

import { Simplex } from 'react-simplex';

Simplex.init('todos', [], false); //Define some storage scope

Todos.jsx

import { SimplexMapToProps } from 'react-simplex';

class Todos extends Component{
  render(){
    return(
      <div>
        <span>{ this.props.todos_count } / { this.props.not_finished_count }</span>

        {
          this.props.todos.map( ( todo, i)=>{
          return <div key={i}>{ todo.title }</div>
          })
        }
      </div>
    );
  }
});

export default SimplexMapToProps( Todos, ( storage, current_props )=>{
  return {
    todos: storage.todos,
    todos_count: storage.todos.length,
    not_finished_count: storage.todos.filter( ( todo )=>{
      return !todo.done;
    }).length
  }
});

Put data to storage

Simplex.todos = [
  {title: 'tests'},
  {title: 'fix'},
  {title: 'update readme'},
  {title: 'update version'},
  {title: 'publish'}
]


Simplex.set('todos', [
  {title: 'tests'},
  {title: 'fix'},
  {title: 'update readme'},
  {title: 'update version'},
  {title: 'publish'}
])

Atention! Change exist storage type array

Simplex.todos = [
  {title: 'tests'},
  {title: 'fix'},
  {title: 'update readme'},
  {title: 'update version'},
  {title: 'publish'}
]

Simplex.todos.push({
  title:
})

//After that changes data not pass to components
//you need to trigger onChange manualy
Simplex.trigger('todos')

or

const todos = Simplex.todos //imutable
todos.push({
  title:
})
Simplex.todos = todos;

Change storage

//Storage already have some data
Simplex.user = {
  name: 'Alex',
  token: 'asEkfjeE3rR',
  role: 3,
  email: 'test@test.ts',
  description: 'Some text'
}

To update 'user' storage we should do

//Update will auto trigger onChange
Simplex.update('user', {
  description: 'New description'
});

or

//Direct access to keys not trigger onChange
Simplex.user.description = 'Some text'
Simplex.trigger('user') //this is important line

or

const user = Simplex.user
user.description = 'New description'
Simplex.user = user

Simplex.init(scopeName, data, sync)

Init scope with default values data

sync - true|false sync data with localstorage|asyncStorage

Simplex.set(scopeName, data)

Set value of the defined scope

Simplex.update(scopeName, data)

Update existing scope

Simplex.reset(scopeName)

Reset scope to init value

Simplex.reset()

Reset all scopes to init values

Simplex.onChange(scopeName, callback)

scopeName - can be with namespace 'user.NAMESPACE'

Subscribe to scope changes

Simplex.remove(scopeName)

scopeName with namespace

remove listener

Simplex.trigger(scopeName)

scopeName - default any

Trigger scope changes

1.4.7

5 years ago

1.4.6

7 years ago

1.4.5

7 years ago

1.4.4

7 years ago

1.4.3

7 years ago

1.4.2

7 years ago

1.4.1

7 years ago

1.4.0

7 years ago

1.3.9

8 years ago

1.3.8

8 years ago

1.3.7

8 years ago

1.3.6

8 years ago

1.3.5

8 years ago

1.3.4

8 years ago

1.3.3

8 years ago

1.3.2

8 years ago

1.3.1

8 years ago

1.3.0

8 years ago

1.2.13

8 years ago

1.2.12

8 years ago

1.2.11

8 years ago

1.2.10

9 years ago

1.2.9

9 years ago

1.2.8

9 years ago

1.2.7

9 years ago

1.2.6

9 years ago

1.2.5

9 years ago

1.2.4

9 years ago

1.2.3

9 years ago

1.2.2

9 years ago

1.2.1

9 years ago

1.2.0

9 years ago

1.1.4

9 years ago

1.1.3

9 years ago

1.1.2

9 years ago

1.1.1

10 years ago

1.1.0

10 years ago

1.0.7

10 years ago

1.0.6

10 years ago

1.0.5

10 years ago

1.0.4

10 years ago

1.0.3

10 years ago

1.0.2

10 years ago

1.0.1

10 years ago

1.0.0

10 years ago