constate
Advanced tools
Comparing version 1.3.0 to 1.3.1
@@ -5,2 +5,9 @@ # Changelog | ||
### [1.3.1](https://github.com/diegohaz/constate/compare/v1.3.0...v1.3.1) (2019-10-20) | ||
### Bug Fixes | ||
* Fix invalid attempt to destructure non-iterable instance ([67001c4](https://github.com/diegohaz/constate/commit/67001c46f981ce378538136b0dcb9f9864d54c10)) | ||
## [1.3.0](https://github.com/diegohaz/constate/compare/v1.2.0...v1.3.0) (2019-10-20) | ||
@@ -7,0 +14,0 @@ |
@@ -58,35 +58,52 @@ 'use strict'; | ||
useContext.Provider = Provider; | ||
var tuple = []; | ||
if (!splitValues.length) { | ||
// const [Provider, useCounterContext] = constate(...); | ||
useContext[0] = Provider; | ||
useContext[1] = createUseContext(Context); | ||
return useContext; | ||
} | ||
tuple.push(Provider, createUseContext(Context)); | ||
} else { | ||
var contexts = []; | ||
var contexts = []; | ||
var SplitProvider = function SplitProvider(props) { | ||
var value = useValue(props); | ||
var children = props.children; | ||
var SplitProvider = function SplitProvider(props) { | ||
var value = useValue(props); | ||
return contexts.reduceRight(function (children, context, i) { | ||
return (// splitValues[i] may be a custom hook, but it won't change between | ||
// re-renders | ||
React.createElement(context.Provider, { | ||
value: splitValues[i](value) | ||
}, children) | ||
); | ||
}, props.children); | ||
}; | ||
for (var i = 0; i < contexts.length; i += 1) { | ||
var context = contexts[i]; // splitValue may be a hook, but it won't change between re-renders | ||
if (useValue.name) { | ||
SplitProvider.displayName = useValue.name + ".Provider"; | ||
} // const [Provider, useCount, useIncrement] = constate(...); | ||
var splitValue = splitValues[i]; | ||
children = React.createElement(context.Provider, { | ||
value: splitValue(value) | ||
}, children); | ||
} | ||
return children; | ||
}; | ||
useContext[0] = SplitProvider; | ||
splitValues.forEach(function (_, i) { | ||
var context = React.createContext(NO_PROVIDER); | ||
contexts.push(context); | ||
useContext[i + 1] = createUseContext(context); | ||
}); | ||
if (useValue.name) { | ||
SplitProvider.displayName = useValue.name + ".Provider"; | ||
} // const [Provider, useCount, useIncrement] = constate(...); | ||
tuple.push(SplitProvider); | ||
for (var i = 0; i < splitValues.length; i += 1) { | ||
var context = React.createContext(NO_PROVIDER); | ||
contexts.push(context); | ||
tuple.push(createUseContext(context)); | ||
} | ||
} | ||
for (var _i = 0; _i < tuple.length; _i += 1) { | ||
useContext[_i] = tuple[_i]; | ||
} | ||
if (typeof Symbol === "function" && Symbol.iterator) { | ||
useContext[Symbol.iterator] = | ||
/* istanbul ignore next */ | ||
function () { | ||
return tuple[Symbol.iterator](); | ||
}; | ||
} | ||
return useContext; | ||
@@ -93,0 +110,0 @@ } |
@@ -1,2 +0,2 @@ | ||
import { createContext, useContext, useMemo, createElement } from 'react'; | ||
import { createContext, useMemo, createElement, useContext } from 'react'; | ||
@@ -54,35 +54,52 @@ var NO_PROVIDER = "CONSTATE_NO_PROVIDER"; | ||
useContext.Provider = Provider; | ||
var tuple = []; | ||
if (!splitValues.length) { | ||
// const [Provider, useCounterContext] = constate(...); | ||
useContext[0] = Provider; | ||
useContext[1] = createUseContext(Context); | ||
return useContext; | ||
} | ||
tuple.push(Provider, createUseContext(Context)); | ||
} else { | ||
var contexts = []; | ||
var contexts = []; | ||
var SplitProvider = function SplitProvider(props) { | ||
var value = useValue(props); | ||
var children = props.children; | ||
var SplitProvider = function SplitProvider(props) { | ||
var value = useValue(props); | ||
return contexts.reduceRight(function (children, context, i) { | ||
return (// splitValues[i] may be a custom hook, but it won't change between | ||
// re-renders | ||
createElement(context.Provider, { | ||
value: splitValues[i](value) | ||
}, children) | ||
); | ||
}, props.children); | ||
}; | ||
for (var i = 0; i < contexts.length; i += 1) { | ||
var context = contexts[i]; // splitValue may be a hook, but it won't change between re-renders | ||
if (useValue.name) { | ||
SplitProvider.displayName = useValue.name + ".Provider"; | ||
} // const [Provider, useCount, useIncrement] = constate(...); | ||
var splitValue = splitValues[i]; | ||
children = createElement(context.Provider, { | ||
value: splitValue(value) | ||
}, children); | ||
} | ||
return children; | ||
}; | ||
useContext[0] = SplitProvider; | ||
splitValues.forEach(function (_, i) { | ||
var context = createContext(NO_PROVIDER); | ||
contexts.push(context); | ||
useContext[i + 1] = createUseContext(context); | ||
}); | ||
if (useValue.name) { | ||
SplitProvider.displayName = useValue.name + ".Provider"; | ||
} // const [Provider, useCount, useIncrement] = constate(...); | ||
tuple.push(SplitProvider); | ||
for (var i = 0; i < splitValues.length; i += 1) { | ||
var context = createContext(NO_PROVIDER); | ||
contexts.push(context); | ||
tuple.push(createUseContext(context)); | ||
} | ||
} | ||
for (var _i = 0; _i < tuple.length; _i += 1) { | ||
useContext[_i] = tuple[_i]; | ||
} | ||
if (typeof Symbol === "function" && Symbol.iterator) { | ||
useContext[Symbol.iterator] = | ||
/* istanbul ignore next */ | ||
function () { | ||
return tuple[Symbol.iterator](); | ||
}; | ||
} | ||
return useContext; | ||
@@ -89,0 +106,0 @@ } |
@@ -1,1 +0,1 @@ | ||
!function(e,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports,require("react")):"function"==typeof define&&define.amd?define(["exports","react"],r):r((e=e||self).constate={},e.React)}(this,function(e,f){"use strict";var d="CONSTATE_NO_PROVIDER";function l(e){return function(){return f.useContext(e)}}e.default=function(o){for(var e=arguments.length,i=new Array(1<e?e-1:0),r=1;r<e;r++)i[r-1]=arguments[r];function t(e){var r=o(e),t=i[0],n=t&&t(r),a=Array.isArray(n)?f.useMemo(function(){return r},n):r;return f.createElement(u.Provider,{value:a},e.children)}var u=f.createContext(d);o.name&&(u.displayName=o.name+".Context",t.displayName=o.name+".Provider");var n=l(u);if(n.Context=u,n.Provider=t,!i.length)return n[0]=t,n[1]=l(u),n;function a(e){var n=o(e);return c.reduceRight(function(e,r,t){return f.createElement(r.Provider,{value:i[t](n)},e)},e.children)}var c=[];return o.name&&(a.displayName=o.name+".Provider"),n[0]=a,i.forEach(function(e,r){var t=f.createContext(d);c.push(t),n[r+1]=l(t)}),n},Object.defineProperty(e,"__esModule",{value:!0})}); | ||
!function(e,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports,require("react")):"function"==typeof define&&define.amd?define(["exports","react"],r):r((e=e||self).constate={},e.React)}(this,function(e,v){"use strict";var m="CONSTATE_NO_PROVIDER";function p(e){return function(){return v.useContext(e)}}e.default=function(i){for(var e=arguments.length,u=new Array(1<e?e-1:0),r=1;r<e;r++)u[r-1]=arguments[r];function t(e){var r=i(e),t=u[0],n=t&&t(r),o=Array.isArray(n)?v.useMemo(function(){return r},n):r;return v.createElement(a.Provider,{value:o},e.children)}var a=v.createContext(m);i.name&&(a.displayName=i.name+".Context",t.displayName=i.name+".Provider");var n=p(a);n.Context=a,n.Provider=t;var o=[];if(u.length){var f=[],c=function(e){for(var r=i(e),t=e.children,n=0;n<f.length;n+=1){var o=f[n],a=u[n];t=v.createElement(o.Provider,{value:a(r)},t)}return t};i.name&&(c.displayName=i.name+".Provider"),o.push(c);for(var l=0;l<u.length;l+=1){var d=v.createContext(m);f.push(d),o.push(p(d))}}else o.push(t,p(a));for(var s=0;s<o.length;s+=1)n[s]=o[s];return"function"==typeof Symbol&&Symbol.iterator&&(n[Symbol.iterator]=function(){return o[Symbol.iterator]()}),n},Object.defineProperty(e,"__esModule",{value:!0})}); |
{ | ||
"name": "constate", | ||
"version": "1.3.0", | ||
"version": "1.3.1", | ||
"description": "Yet another React state management library that lets you work with local state and scale up to global state with ease", | ||
@@ -62,5 +62,5 @@ "license": "MIT", | ||
"@testing-library/react": "9.3.0", | ||
"@types/jest": "24.0.18", | ||
"@types/jest": "24.0.19", | ||
"@types/prop-types": "15.7.3", | ||
"@types/react": "16.9.5", | ||
"@types/react": "16.9.9", | ||
"@typescript-eslint/eslint-plugin": "2.3.3", | ||
@@ -77,3 +77,3 @@ "@typescript-eslint/parser": "2.3.3", | ||
"eslint-plugin-react": "7.16.0", | ||
"husky": "3.0.8", | ||
"husky": "3.0.9", | ||
"jest": "24.9.0", | ||
@@ -88,3 +88,3 @@ "lint-staged": "9.4.2", | ||
"rimraf": "3.0.0", | ||
"rollup": "1.23.1", | ||
"rollup": "1.25.0", | ||
"rollup-plugin-babel": "4.3.3", | ||
@@ -91,0 +91,0 @@ "rollup-plugin-commonjs": "10.1.0", |
@@ -55,3 +55,3 @@ <p align="center"> | ||
// 3️⃣ Use context instead of custom hook | ||
const { increment } = useCounterContext() | ||
const { increment } = useCounterContext(); | ||
return <button onClick={increment}>+</button>; | ||
@@ -62,3 +62,3 @@ } | ||
// 4️⃣ Use context in other components | ||
const { count } = useCounterContext() | ||
const { count } = useCounterContext(); | ||
return <span>{count}</span>; | ||
@@ -65,0 +65,0 @@ } |
Sorry, the diff of this file is not supported yet
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
27667
333
0