UNPKG

relay-hooks

Version:
43 lines (36 loc) 899 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useForceUpdate = void 0; var react_1 = require("react"); function useForceUpdate() { var _a = (0, react_1.useState)([]), forceUpdate = _a[1]; var mountState = (0, react_1.useRef)({ mounted: false, pending: false }); (0, react_1.useEffect)(function () { mountState.current.mounted = true; if (mountState.current.pending) { mountState.current.pending = false; forceUpdate([]); } return function () { mountState.current = { mounted: false, pending: false }; }; }, []); var update = (0, react_1.useCallback)(function () { if (mountState.current.mounted) { forceUpdate([]); } else { mountState.current.pending = true; } }, [forceUpdate]); return update; } exports.useForceUpdate = useForceUpdate;