useFrame.js 721 B

123456789101112131415161718192021222324252627
  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  3. Object.defineProperty(exports, "__esModule", {
  4. value: true
  5. });
  6. exports.default = void 0;
  7. var _react = require("react");
  8. var _raf = _interopRequireDefault(require("rc-util/lib/raf"));
  9. /**
  10. * Always trigger latest once when call multiple time
  11. */
  12. var _default = exports.default = function _default() {
  13. var idRef = (0, _react.useRef)(0);
  14. var cleanUp = function cleanUp() {
  15. _raf.default.cancel(idRef.current);
  16. };
  17. (0, _react.useEffect)(function () {
  18. return cleanUp;
  19. }, []);
  20. return function (callback) {
  21. cleanUp();
  22. idRef.current = (0, _raf.default)(function () {
  23. callback();
  24. });
  25. };
  26. };