@webkrafters/react-observable-context 4.0.0-rc.1 → 4.0.0-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -13
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -251,21 +251,16 @@ The React-Observable-Context module contains **4** exports namely:
|
|
|
251
251
|
|
|
252
252
|
<i><b><u>context.js</u></b></i>
|
|
253
253
|
```
|
|
254
|
-
import {
|
|
254
|
+
import { createContext } from '@webkrafters/react-observable-context';
|
|
255
255
|
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
export const connectObservableContext = selectorMap => connect( ObservablContext, selectorMap );
|
|
259
|
-
|
|
260
|
-
export const useObservableContext = selectorMap => useContext( ObservableContext, selectorMap );
|
|
261
|
-
|
|
262
|
-
export default ObservableContext;
|
|
256
|
+
export default createContext();
|
|
263
257
|
```
|
|
264
258
|
|
|
265
259
|
<i><b><u>ui.js</u></b> (connect method)</i>
|
|
266
260
|
```
|
|
267
261
|
import React, { useCallback, useEffect } from 'react';
|
|
268
|
-
import
|
|
262
|
+
import { connect } from '@webkrafters/react-observable-context';
|
|
263
|
+
import ObservableContext from './context';
|
|
269
264
|
|
|
270
265
|
export const YearText = ({ data }) => ( <div>Year: { data.year }</div> );
|
|
271
266
|
export const YearInput = ({ data, setState, resetState }) => {
|
|
@@ -278,7 +273,7 @@ export const YearInput = ({ data, setState, resetState }) => {
|
|
|
278
273
|
return ( <div>Year: <input type="number" onChange={ onChange } /> );
|
|
279
274
|
};
|
|
280
275
|
|
|
281
|
-
const withConnector =
|
|
276
|
+
const withConnector = connect( ObservablContext, { year: 'a.b.x.y.z[0]' } );
|
|
282
277
|
const Client1 = withConnector( YearText );
|
|
283
278
|
const Client2 = withConnector( YearInput );
|
|
284
279
|
|
|
@@ -295,17 +290,18 @@ export default Ui;
|
|
|
295
290
|
<i><b><u>ui.js</u></b> (useContext with memo method)</i>
|
|
296
291
|
```
|
|
297
292
|
import React, { memo, useCallback, useEffect } from 'react';
|
|
298
|
-
import
|
|
293
|
+
import { useContext } from '@webkrafters/react-observable-context';
|
|
294
|
+
import ObservableContext from './context';
|
|
299
295
|
|
|
300
296
|
const selectorMap = { year: 'a.b.x.y.z[0]' };
|
|
301
297
|
|
|
302
298
|
const Client1 = memo(() => { // memoize to prevent 'no-change' renders from the parent.
|
|
303
|
-
const { data } =
|
|
299
|
+
const { data } = useContext( ObservableContext, selectorMap );
|
|
304
300
|
return ( <div>Year: { data.year }</div> );
|
|
305
301
|
});
|
|
306
302
|
|
|
307
303
|
const Client2 = memo(() => { // memoize to prevent 'no-change' renders from the parent.
|
|
308
|
-
const { data, setState, resetState } =
|
|
304
|
+
const { data, setState, resetState } = useContext( ObservableContext, selectorMap );
|
|
309
305
|
const onChange = useCallback( e => setState({
|
|
310
306
|
a: { b: { x: { y: { z: { 0: e.target.value } } } } }
|
|
311
307
|
}), [ setState ]);
|
package/package.json
CHANGED