matrix-react-sdk
Version:
SDK for matrix.org using React
34 lines (31 loc) • 3.25 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.useDebouncedCallback = useDebouncedCallback;
var _react = require("react");
/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.
SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only
Please see LICENSE files in the repository root for full details.
*/
const DEBOUNCE_TIMEOUT = 100;
function useDebouncedCallback(enabled, callback, params) {
(0, _react.useEffect)(() => {
let handle = null;
const doSearch = () => {
handle = null;
callback(...params);
};
if (enabled !== false) {
handle = window.setTimeout(doSearch, DEBOUNCE_TIMEOUT);
return () => {
if (handle) {
clearTimeout(handle);
}
};
}
}, [enabled, callback, params]);
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwiREVCT1VOQ0VfVElNRU9VVCIsInVzZURlYm91bmNlZENhbGxiYWNrIiwiZW5hYmxlZCIsImNhbGxiYWNrIiwicGFyYW1zIiwidXNlRWZmZWN0IiwiaGFuZGxlIiwiZG9TZWFyY2giLCJ3aW5kb3ciLCJzZXRUaW1lb3V0IiwiY2xlYXJUaW1lb3V0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2hvb2tzL3Nwb3RsaWdodC91c2VEZWJvdW5jZWRDYWxsYmFjay50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHlcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG5pbXBvcnQgeyB1c2VFZmZlY3QgfSBmcm9tIFwicmVhY3RcIjtcblxuY29uc3QgREVCT1VOQ0VfVElNRU9VVCA9IDEwMDtcblxuZXhwb3J0IGZ1bmN0aW9uIHVzZURlYm91bmNlZENhbGxiYWNrPFQgZXh0ZW5kcyBhbnlbXT4oXG4gICAgZW5hYmxlZDogYm9vbGVhbixcbiAgICBjYWxsYmFjazogKC4uLnBhcmFtczogVCkgPT4gdW5rbm93bixcbiAgICBwYXJhbXM6IFQsXG4pOiB2b2lkIHtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBsZXQgaGFuZGxlOiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgICAgICAgY29uc3QgZG9TZWFyY2ggPSAoKTogdm9pZCA9PiB7XG4gICAgICAgICAgICBoYW5kbGUgPSBudWxsO1xuICAgICAgICAgICAgY2FsbGJhY2soLi4ucGFyYW1zKTtcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKGVuYWJsZWQgIT09IGZhbHNlKSB7XG4gICAgICAgICAgICBoYW5kbGUgPSB3aW5kb3cuc2V0VGltZW91dChkb1NlYXJjaCwgREVCT1VOQ0VfVElNRU9VVCk7XG4gICAgICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChoYW5kbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgY2xlYXJUaW1lb3V0KGhhbmRsZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH0sIFtlbmFibGVkLCBjYWxsYmFjaywgcGFyYW1zXSk7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQVFBLElBQUFBLE1BQUEsR0FBQUMsT0FBQTtBQVJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUlBLE1BQU1DLGdCQUFnQixHQUFHLEdBQUc7QUFFckIsU0FBU0Msb0JBQW9CQSxDQUNoQ0MsT0FBZ0IsRUFDaEJDLFFBQW1DLEVBQ25DQyxNQUFTLEVBQ0w7RUFDSixJQUFBQyxnQkFBUyxFQUFDLE1BQU07SUFDWixJQUFJQyxNQUFxQixHQUFHLElBQUk7SUFDaEMsTUFBTUMsUUFBUSxHQUFHQSxDQUFBLEtBQVk7TUFDekJELE1BQU0sR0FBRyxJQUFJO01BQ2JILFFBQVEsQ0FBQyxHQUFHQyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUNELElBQUlGLE9BQU8sS0FBSyxLQUFLLEVBQUU7TUFDbkJJLE1BQU0sR0FBR0UsTUFBTSxDQUFDQyxVQUFVLENBQUNGLFFBQVEsRUFBRVAsZ0JBQWdCLENBQUM7TUFDdEQsT0FBTyxNQUFNO1FBQ1QsSUFBSU0sTUFBTSxFQUFFO1VBQ1JJLFlBQVksQ0FBQ0osTUFBTSxDQUFDO1FBQ3hCO01BQ0osQ0FBQztJQUNMO0VBQ0osQ0FBQyxFQUFFLENBQUNKLE9BQU8sRUFBRUMsUUFBUSxFQUFFQyxNQUFNLENBQUMsQ0FBQztBQUNuQyIsImlnbm9yZUxpc3QiOltdfQ==