UNPKG

matrix-react-sdk

Version:
33 lines (30 loc) 3.38 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useLatestResult = void 0; 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. */ /** * Hook to prevent a slower response to an earlier query overwriting the result to a faster response of a later query * @param onResultChanged */ const useLatestResult = onResultChanged => { const ref = (0, _react.useRef)(null); const setQuery = (0, _react.useCallback)(query => { ref.current = query; }, []); const setResult = (0, _react.useCallback)((query, result) => { if (ref.current === query) { onResultChanged(result); } }, [onResultChanged]); return [setQuery, setResult]; }; exports.useLatestResult = useLatestResult; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwidXNlTGF0ZXN0UmVzdWx0Iiwib25SZXN1bHRDaGFuZ2VkIiwicmVmIiwidXNlUmVmIiwic2V0UXVlcnkiLCJ1c2VDYWxsYmFjayIsInF1ZXJ5IiwiY3VycmVudCIsInNldFJlc3VsdCIsInJlc3VsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvaG9va3MvdXNlTGF0ZXN0UmVzdWx0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seVxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbmltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VSZWYgfSBmcm9tIFwicmVhY3RcIjtcblxuLyoqXG4gKiBIb29rIHRvIHByZXZlbnQgYSBzbG93ZXIgcmVzcG9uc2UgdG8gYW4gZWFybGllciBxdWVyeSBvdmVyd3JpdGluZyB0aGUgcmVzdWx0IHRvIGEgZmFzdGVyIHJlc3BvbnNlIG9mIGEgbGF0ZXIgcXVlcnlcbiAqIEBwYXJhbSBvblJlc3VsdENoYW5nZWRcbiAqL1xuZXhwb3J0IGNvbnN0IHVzZUxhdGVzdFJlc3VsdCA9IDxULCBSPihcbiAgICBvblJlc3VsdENoYW5nZWQ6IChyZXN1bHQ6IFIpID0+IHZvaWQsXG4pOiBbKHF1ZXJ5OiBUIHwgbnVsbCkgPT4gdm9pZCwgKHF1ZXJ5OiBUIHwgbnVsbCwgcmVzdWx0OiBSKSA9PiB2b2lkXSA9PiB7XG4gICAgY29uc3QgcmVmID0gdXNlUmVmPFQgfCBudWxsPihudWxsKTtcbiAgICBjb25zdCBzZXRRdWVyeSA9IHVzZUNhbGxiYWNrKChxdWVyeTogVCB8IG51bGwpID0+IHtcbiAgICAgICAgcmVmLmN1cnJlbnQgPSBxdWVyeTtcbiAgICB9LCBbXSk7XG4gICAgY29uc3Qgc2V0UmVzdWx0ID0gdXNlQ2FsbGJhY2soXG4gICAgICAgIChxdWVyeTogVCB8IG51bGwsIHJlc3VsdDogUikgPT4ge1xuICAgICAgICAgICAgaWYgKHJlZi5jdXJyZW50ID09PSBxdWVyeSkge1xuICAgICAgICAgICAgICAgIG9uUmVzdWx0Q2hhbmdlZChyZXN1bHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBbb25SZXN1bHRDaGFuZ2VkXSxcbiAgICApO1xuICAgIHJldHVybiBbc2V0UXVlcnksIHNldFJlc3VsdF07XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFRQSxJQUFBQSxNQUFBLEdBQUFDLE9BQUE7QUFSQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNPLE1BQU1DLGVBQWUsR0FDeEJDLGVBQW9DLElBQ2dDO0VBQ3BFLE1BQU1DLEdBQUcsR0FBRyxJQUFBQyxhQUFNLEVBQVcsSUFBSSxDQUFDO0VBQ2xDLE1BQU1DLFFBQVEsR0FBRyxJQUFBQyxrQkFBVyxFQUFFQyxLQUFlLElBQUs7SUFDOUNKLEdBQUcsQ0FBQ0ssT0FBTyxHQUFHRCxLQUFLO0VBQ3ZCLENBQUMsRUFBRSxFQUFFLENBQUM7RUFDTixNQUFNRSxTQUFTLEdBQUcsSUFBQUgsa0JBQVcsRUFDekIsQ0FBQ0MsS0FBZSxFQUFFRyxNQUFTLEtBQUs7SUFDNUIsSUFBSVAsR0FBRyxDQUFDSyxPQUFPLEtBQUtELEtBQUssRUFBRTtNQUN2QkwsZUFBZSxDQUFDUSxNQUFNLENBQUM7SUFDM0I7RUFDSixDQUFDLEVBQ0QsQ0FBQ1IsZUFBZSxDQUNwQixDQUFDO0VBQ0QsT0FBTyxDQUFDRyxRQUFRLEVBQUVJLFNBQVMsQ0FBQztBQUNoQyxDQUFDO0FBQUNFLE9BQUEsQ0FBQVYsZUFBQSxHQUFBQSxlQUFBIiwiaWdub3JlTGlzdCI6W119