No description
Find a file
Alexander Kiryukhin 57d33c179d Added readme
2019-08-02 01:06:42 +03:00
.gitignore Fix package 2019-08-02 00:51:34 +03:00
compose.js Fix package 2 2019-08-02 00:57:12 +03:00
index.js first commit 2019-08-02 00:41:10 +03:00
package-lock.json first commit 2019-08-02 00:41:10 +03:00
package.json Added readme 2019-08-02 01:06:42 +03:00
readme.md Added readme 2019-08-02 01:06:42 +03:00

unstated-next-compose

Simple provider compose for unstated-next

Usage

import React, { useState } from 'react';
import { createContainer } from 'unstated-next';

import { Compose } from 'unstated-next-compose'; // <---

const useProvider1 = () => {
  const [a, setA] = useState(0);
  return { a, setA }
}

const Provider1 = createContainer(useProvider1);

const ComponentA = (props) => {
  const { a, setA } = Provider1.useContainer()
  return <button onClick={() => setA(a + 1)}>A={a}</button>
}
const useProvider2 = () => {
  const [b, setB] = useState(0);
  return { b, setB }
}

const Provider2 = createContainer(useProvider2);

const ComponentB = (props) => {
  const { b, setB } = Provider2.useContainer()
  return <button onClick={() => setB(b + 1)}>B={b}</button>
}

const store = [Provider1.Provider, Provider2.Provider];  // <---

export default () => (
  <Compose providers={store}>  // <---
    <ComponentA />
    <ComponentB />
  </Compose>
)