@ant-design/x-sdk
Version:
placeholder for @ant-design/x-sdk
18 lines (17 loc) • 782 B
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = useSyncState;
var _react = _interopRequireDefault(require("react"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function useSyncState(defaultValue) {
const [, forceUpdate] = _react.default.useState(0);
const stateRef = _react.default.useRef(typeof defaultValue === 'function' ? defaultValue() : defaultValue);
const setState = _react.default.useCallback(action => {
stateRef.current = typeof action === 'function' ? action(stateRef.current) : action;
forceUpdate(prev => prev + 1);
}, []);
const getState = _react.default.useCallback(() => stateRef.current, []);
return [stateRef.current, setState, getState];
}