djinn-state-react
TypeScript icon, indicating that this package has built-in type declarations

2.0.1 • Public • Published

Djinn-state react

npm version Build Status Codacy Badge Codacy Badge

Djinn-state helpers for react

Install

npm npm i --save djinn-state djinn-state-react

yarn yarn add djinn-state djinn-state-react

Examples

Using

// djinn.js
import { Djinn, DjinnService } from 'djinn-state';
import { createUseService } from 'djinn-state-react';
 
export const djinn = new Djinn();
export const useService = createUseService(djinn);
 
 
// CounterService.js
export class CounterService extends DjinnService {
  state = {
    count: 0,
  };
  
  decrement = () => {
    const count = this.getState().count - 1;
    this.patch({ count });
  };
  
  increment = () => {
    const count = this.getState().count + 1;
    this.patch({ count });
  };
}
 
// djinnServices.js
import { djinn } from './djinn';
 
djinn.register(CounterService);
djinn.start();
 
 
// HomePage.js
import React from 'react';
import { useService } from './djinn';
import { CounterService } from './CounterService';
 
const HomePage = () => {
  const counter = useService(CounterService);
  
  return (
    <div>
    <button onClick={counter.decrement}>-</button>
    {counter.getState().count}
    <button onClick={counter.increment}>+</button>
    </div>
  );
}
 
export default HomePage;

Package Sidebar

Install

npm i djinn-state-react

Weekly Downloads

10

Version

2.0.1

License

MIT

Unpacked Size

9.39 kB

Total Files

17

Last publish

Collaborators

  • gilmarsquinelato