Files

19 lines
686 B
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.useMediatedState = void 0;
var react_1 = require("react");
function useMediatedState(mediator, initialState) {
var mediatorFn = react_1.useRef(mediator);
var _a = react_1.useState(initialState), state = _a[0], setMediatedState = _a[1];
var setState = react_1.useCallback(function (newState) {
if (mediatorFn.current.length === 2) {
mediatorFn.current(newState, setMediatedState);
}
else {
setMediatedState(mediatorFn.current(newState));
}
}, [state]);
return [state, setState];
}
exports.useMediatedState = useMediatedState;