UNPKG

vtils

Version:

一个面向业务的 JavaScript/TypeScript 实用程序库。

29 lines (28 loc) 948 B
"use strict"; exports.__esModule = true; exports.useStaged = useStaged; var _react = require("react"); var _reactUse = require("react-use"); var _useStateWithDeps2 = require("./useStateWithDeps"); /** * 暂存状态。 */ function useStaged(value, setValue) { var _useStateWithDeps = (0, _useStateWithDeps2.useStateWithDeps)(value, [value]), stagedState = _useStateWithDeps[0], setStagedState = _useStateWithDeps[1]; var valueRef = (0, _reactUse.useLatest)(value); var setValueRef = (0, _reactUse.useLatest)(setValue); var stagedStateRef = (0, _reactUse.useLatest)(stagedState); var commitStagedState = (0, _react.useCallback)(function () { setValueRef.current(stagedStateRef.current); }, []); var resetStagedState = (0, _react.useCallback)(function () { setStagedState(valueRef.current); }, []); return [stagedState, { set: setStagedState, commit: commitStagedState, reset: resetStagedState }]; }