useDebounce.js 569 B

1234567891011121314151617181920
  1. "use strict";
  2. var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
  3. Object.defineProperty(exports, "__esModule", {
  4. value: true
  5. });
  6. exports.default = useDebounce;
  7. var React = _interopRequireWildcard(require("react"));
  8. function useDebounce(value) {
  9. const [cacheValue, setCacheValue] = React.useState(value);
  10. React.useEffect(() => {
  11. const timeout = setTimeout(() => {
  12. setCacheValue(value);
  13. }, value.length ? 0 : 10);
  14. return () => {
  15. clearTimeout(timeout);
  16. };
  17. }, [value]);
  18. return cacheValue;
  19. }