UNPKG

ahooks

Version:
28 lines (27 loc) 1 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _react = require("react"); var _useUnmount = _interopRequireDefault(require("../useUnmount")); function useRafState(initialState) { var ref = (0, _react.useRef)(0); var _useState = (0, _react.useState)(initialState), _useState2 = (0, _slicedToArray2["default"])(_useState, 2), state = _useState2[0], setState = _useState2[1]; var setRafState = (0, _react.useCallback)(function (value) { cancelAnimationFrame(ref.current); ref.current = requestAnimationFrame(function () { setState(value); }); }, []); (0, _useUnmount["default"])(function () { cancelAnimationFrame(ref.current); }); return [state, setRafState]; } var _default = exports["default"] = useRafState;