@restart/hooks
Advanced tools
Comparing version 0.4.4 to 0.4.5
@@ -1,19 +0,2 @@ | ||
import { DependencyList, EffectCallback } from 'react'; | ||
/** | ||
* An _immediate_ effect that runs an effect callback when its dependency array | ||
* changes. This is helpful for updates should must run during render, most | ||
* commonly state derived from props; a more ergonomic version of https://reactjs.org/docs/hooks-faq.html#how-do-i-implement-getderivedstatefromprops | ||
* | ||
* ```ts | ||
* function Example({ value }) { | ||
* const [intermediaryValue, setValue] = useState(value); | ||
* | ||
* useImmediateUpdateEffect(() => { | ||
* setValue(value) | ||
* }, [value]) | ||
* ``` | ||
* | ||
* @category effects | ||
*/ | ||
declare function useImmediateUpdateEffect(effect: EffectCallback, deps: DependencyList): void; | ||
export default useImmediateUpdateEffect; | ||
import useUpdateImmediateEffect from './useUpdateImmediateEffect'; | ||
export default useUpdateImmediateEffect; |
@@ -6,44 +6,7 @@ "use strict"; | ||
var _react = require("react"); | ||
var _useUpdateImmediateEffect = _interopRequireDefault(require("./useUpdateImmediateEffect")); | ||
var _useStableMemo = _interopRequireDefault(require("./useStableMemo")); | ||
var _useWillUnmount = _interopRequireDefault(require("./useWillUnmount")); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
/** | ||
* An _immediate_ effect that runs an effect callback when its dependency array | ||
* changes. This is helpful for updates should must run during render, most | ||
* commonly state derived from props; a more ergonomic version of https://reactjs.org/docs/hooks-faq.html#how-do-i-implement-getderivedstatefromprops | ||
* | ||
* ```ts | ||
* function Example({ value }) { | ||
* const [intermediaryValue, setValue] = useState(value); | ||
* | ||
* useImmediateUpdateEffect(() => { | ||
* setValue(value) | ||
* }, [value]) | ||
* ``` | ||
* | ||
* @category effects | ||
*/ | ||
function useImmediateUpdateEffect(effect, deps) { | ||
var firstRef = (0, _react.useRef)(true); | ||
var tearDown = (0, _react.useRef)(); | ||
(0, _useWillUnmount.default)(function () { | ||
if (tearDown.current) tearDown.current(); | ||
}); | ||
(0, _useStableMemo.default)(function () { | ||
if (firstRef.current) { | ||
firstRef.current = false; | ||
return; | ||
} | ||
if (tearDown.current) tearDown.current(); | ||
tearDown.current = effect(); | ||
}, deps); | ||
} | ||
var _default = useImmediateUpdateEffect; | ||
var _default = _useUpdateImmediateEffect.default; | ||
exports.default = _default; |
@@ -1,19 +0,2 @@ | ||
import { DependencyList, EffectCallback } from 'react'; | ||
/** | ||
* An _immediate_ effect that runs an effect callback when its dependency array | ||
* changes. This is helpful for updates should must run during render, most | ||
* commonly state derived from props; a more ergonomic version of https://reactjs.org/docs/hooks-faq.html#how-do-i-implement-getderivedstatefromprops | ||
* | ||
* ```ts | ||
* function Example({ value }) { | ||
* const [intermediaryValue, setValue] = useState(value); | ||
* | ||
* useImmediateUpdateEffect(() => { | ||
* setValue(value) | ||
* }, [value]) | ||
* ``` | ||
* | ||
* @category effects | ||
*/ | ||
declare function useImmediateUpdateEffect(effect: EffectCallback, deps: DependencyList): void; | ||
export default useImmediateUpdateEffect; | ||
import useUpdateImmediateEffect from './useUpdateImmediateEffect'; | ||
export default useUpdateImmediateEffect; |
@@ -1,38 +0,2 @@ | ||
import { useRef } from 'react'; | ||
import useStableMemo from './useStableMemo'; | ||
import useWillUnmount from './useWillUnmount'; | ||
/** | ||
* An _immediate_ effect that runs an effect callback when its dependency array | ||
* changes. This is helpful for updates should must run during render, most | ||
* commonly state derived from props; a more ergonomic version of https://reactjs.org/docs/hooks-faq.html#how-do-i-implement-getderivedstatefromprops | ||
* | ||
* ```ts | ||
* function Example({ value }) { | ||
* const [intermediaryValue, setValue] = useState(value); | ||
* | ||
* useImmediateUpdateEffect(() => { | ||
* setValue(value) | ||
* }, [value]) | ||
* ``` | ||
* | ||
* @category effects | ||
*/ | ||
function useImmediateUpdateEffect(effect, deps) { | ||
var firstRef = useRef(true); | ||
var tearDown = useRef(); | ||
useWillUnmount(function () { | ||
if (tearDown.current) tearDown.current(); | ||
}); | ||
useStableMemo(function () { | ||
if (firstRef.current) { | ||
firstRef.current = false; | ||
return; | ||
} | ||
if (tearDown.current) tearDown.current(); | ||
tearDown.current = effect(); | ||
}, deps); | ||
} | ||
export default useImmediateUpdateEffect; | ||
import useUpdateImmediateEffect from './useUpdateImmediateEffect'; | ||
export default useUpdateImmediateEffect; |
{ | ||
"name": "@restart/hooks", | ||
"version": "0.4.4", | ||
"version": "0.4.5", | ||
"main": "cjs/index.js", | ||
@@ -5,0 +5,0 @@ "types": "cjs/index.d.ts", |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
189429
219
5084