matrix-react-sdk
Version:
SDK for matrix.org using React
31 lines (28 loc) • 3.09 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.useAsyncMemo = useAsyncMemo;
var _react = require("react");
/*
Copyright 2024 New Vector Ltd.
Copyright 2020 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.
*/
function useAsyncMemo(fn, deps, initialValue) {
const [value, setValue] = (0, _react.useState)(initialValue);
(0, _react.useEffect)(() => {
let discard = false;
fn().then(v => {
if (!discard) {
setValue(v);
}
});
return () => {
discard = true;
};
}, deps); // eslint-disable-line react-hooks/exhaustive-deps
return value;
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwidXNlQXN5bmNNZW1vIiwiZm4iLCJkZXBzIiwiaW5pdGlhbFZhbHVlIiwidmFsdWUiLCJzZXRWYWx1ZSIsInVzZVN0YXRlIiwidXNlRWZmZWN0IiwiZGlzY2FyZCIsInRoZW4iLCJ2Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hvb2tzL3VzZUFzeW5jTWVtby50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHlcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG5pbXBvcnQgeyB1c2VTdGF0ZSwgdXNlRWZmZWN0LCBEZXBlbmRlbmN5TGlzdCB9IGZyb20gXCJyZWFjdFwiO1xuXG50eXBlIEZuPFQ+ID0gKCkgPT4gUHJvbWlzZTxUPjtcblxuZXhwb3J0IGZ1bmN0aW9uIHVzZUFzeW5jTWVtbzxUPihmbjogRm48VD4sIGRlcHM6IERlcGVuZGVuY3lMaXN0LCBpbml0aWFsVmFsdWU6IFQpOiBUO1xuZXhwb3J0IGZ1bmN0aW9uIHVzZUFzeW5jTWVtbzxUPihmbjogRm48VD4sIGRlcHM6IERlcGVuZGVuY3lMaXN0LCBpbml0aWFsVmFsdWU/OiBUKTogVCB8IHVuZGVmaW5lZDtcbmV4cG9ydCBmdW5jdGlvbiB1c2VBc3luY01lbW88VD4oZm46IEZuPFQ+LCBkZXBzOiBEZXBlbmRlbmN5TGlzdCwgaW5pdGlhbFZhbHVlPzogVCk6IFQgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IFt2YWx1ZSwgc2V0VmFsdWVdID0gdXNlU3RhdGU8VCB8IHVuZGVmaW5lZD4oaW5pdGlhbFZhbHVlKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBsZXQgZGlzY2FyZCA9IGZhbHNlO1xuICAgICAgICBmbigpLnRoZW4oKHYpID0+IHtcbiAgICAgICAgICAgIGlmICghZGlzY2FyZCkge1xuICAgICAgICAgICAgICAgIHNldFZhbHVlKHYpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIGRpc2NhcmQgPSB0cnVlO1xuICAgICAgICB9O1xuICAgIH0sIGRlcHMpOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuICAgIHJldHVybiB2YWx1ZTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBUUEsSUFBQUEsTUFBQSxHQUFBQyxPQUFBO0FBUkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBUU8sU0FBU0MsWUFBWUEsQ0FBSUMsRUFBUyxFQUFFQyxJQUFvQixFQUFFQyxZQUFnQixFQUFpQjtFQUM5RixNQUFNLENBQUNDLEtBQUssRUFBRUMsUUFBUSxDQUFDLEdBQUcsSUFBQUMsZUFBUSxFQUFnQkgsWUFBWSxDQUFDO0VBQy9ELElBQUFJLGdCQUFTLEVBQUMsTUFBTTtJQUNaLElBQUlDLE9BQU8sR0FBRyxLQUFLO0lBQ25CUCxFQUFFLENBQUMsQ0FBQyxDQUFDUSxJQUFJLENBQUVDLENBQUMsSUFBSztNQUNiLElBQUksQ0FBQ0YsT0FBTyxFQUFFO1FBQ1ZILFFBQVEsQ0FBQ0ssQ0FBQyxDQUFDO01BQ2Y7SUFDSixDQUFDLENBQUM7SUFDRixPQUFPLE1BQU07TUFDVEYsT0FBTyxHQUFHLElBQUk7SUFDbEIsQ0FBQztFQUNMLENBQUMsRUFBRU4sSUFBSSxDQUFDLENBQUMsQ0FBQztFQUNWLE9BQU9FLEtBQUs7QUFDaEIiLCJpZ25vcmVMaXN0IjpbXX0=