UNPKG

use-debounce-loader

Version:

React hook that exposes the pending state of a debounced value

34 lines (33 loc) 1.2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useLoadingDebounce = exports.DEFAULT_DEBOUNCE_TIME_MS = void 0; var react_1 = require("react"); var use_debounce_1 = require("use-debounce"); exports.DEFAULT_DEBOUNCE_TIME_MS = 1000; function useLoadingDebounce(_a) { var _b = _a === void 0 ? { debounceTime: exports.DEFAULT_DEBOUNCE_TIME_MS, } : _a, debounceTime = _b.debounceTime, initialValue = _b.initialValue, onFinish = _b.onFinish; var _c = react_1.useState(false), isLoading = _c[0], setIsLoading = _c[1]; var _d = react_1.useState(initialValue), value = _d[0], setValue = _d[1]; var onDebounceFinish = function () { if (onFinish) { onFinish(value); } setIsLoading(false); }; var debounceOnChange = use_debounce_1.useDebouncedCallback(onDebounceFinish, debounceTime || 1000)[0]; var onChange = function (newValue) { setIsLoading(true); setValue(newValue); debounceOnChange(); }; return [ onChange, { isLoading: isLoading, value: value, }, ]; } exports.useLoadingDebounce = useLoadingDebounce;