relay-hooks
Version:
43 lines (36 loc) • 899 B
JavaScript
;
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;