12345678910111213141516171819202122232425262728 |
- import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
- import { useState, useCallback, useEffect } from 'react';
- /**
- * Trigger a callback on state change
- */
- export default function useEffectState() {
- var _useState = useState({
- id: 0,
- callback: null
- }),
- _useState2 = _slicedToArray(_useState, 2),
- effectId = _useState2[0],
- setEffectId = _useState2[1];
- var update = useCallback(function (callback) {
- setEffectId(function (_ref) {
- var id = _ref.id;
- return {
- id: id + 1,
- callback: callback
- };
- });
- }, []);
- useEffect(function () {
- var _effectId$callback;
- (_effectId$callback = effectId.callback) === null || _effectId$callback === void 0 || _effectId$callback.call(effectId);
- }, [effectId]);
- return update;
- }
|