1
This commit is contained in:
+28
@@ -0,0 +1,28 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = useEffectState;
|
||||
var _react = require("react");
|
||||
/**
|
||||
* Trigger a callback on state change
|
||||
*/
|
||||
function useEffectState() {
|
||||
const [effectId, setEffectId] = (0, _react.useState)({
|
||||
id: 0,
|
||||
callback: null
|
||||
});
|
||||
const update = (0, _react.useCallback)(callback => {
|
||||
setEffectId(({
|
||||
id
|
||||
}) => ({
|
||||
id: id + 1,
|
||||
callback
|
||||
}));
|
||||
}, []);
|
||||
(0, _react.useEffect)(() => {
|
||||
effectId.callback?.();
|
||||
}, [effectId]);
|
||||
return update;
|
||||
}
|
||||
Reference in New Issue
Block a user