Dashboard sipadu mbip
Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

useTimeout.js 904B

1234567891011121314151617181920212223242526272829303132333435
  1. "use strict";
  2. exports.__esModule = true;
  3. exports.default = useTimeout;
  4. var _react = require("react");
  5. var _useWillUnmount = _interopRequireDefault(require("./useWillUnmount"));
  6. var _useMounted = _interopRequireDefault(require("./useMounted"));
  7. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  8. /**
  9. * Returns a controller object for setting a timeout that is properly cleaned up
  10. * once the component unmounts. New timeouts cancel and replace existing ones.
  11. */
  12. function useTimeout() {
  13. var isMounted = (0, _useMounted.default)();
  14. var handle = (0, _react.useRef)();
  15. var clear = function clear() {
  16. return clearTimeout(handle.current);
  17. };
  18. (0, _useWillUnmount.default)(clear);
  19. return {
  20. set: function set(fn, ms) {
  21. if (!isMounted()) return;
  22. clear();
  23. handle.current = setTimeout(fn, ms);
  24. },
  25. clear: clear
  26. };
  27. }