UNPKG

@ant-design/x-sdk

Version:

placeholder for @ant-design/x-sdk

18 lines (17 loc) 782 B
"use strict"; 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]; }