matrix-react-sdk
Version:
SDK for matrix.org using React
53 lines (50 loc) • 5.16 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.useMap = void 0;
var _react = require("react");
var _map = require("./map");
var _MatrixClientContext = require("../../contexts/MatrixClientContext");
/*
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.
*/
/**
* Create a map instance
* Add listeners for errors
* Make sure `onError` has a stable reference
* As map is recreated on changes to it
*/
const useMap = ({
interactive,
bodyId,
onError
}) => {
const cli = (0, _MatrixClientContext.useMatrixClientContext)();
const [map, setMap] = (0, _react.useState)();
(0, _react.useEffect)(() => {
try {
setMap((0, _map.createMap)(cli, !!interactive, bodyId, onError));
} catch (error) {
console.error("Error encountered in useMap", error);
if (error instanceof Error) {
onError?.(error);
}
}
return () => {
if (map) {
map.remove();
setMap(undefined);
}
};
},
// map is excluded as a dependency
// eslint-disable-next-line react-hooks/exhaustive-deps
[interactive, bodyId, onError]);
return map;
};
exports.useMap = useMap;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwiX21hcCIsIl9NYXRyaXhDbGllbnRDb250ZXh0IiwidXNlTWFwIiwiaW50ZXJhY3RpdmUiLCJib2R5SWQiLCJvbkVycm9yIiwiY2xpIiwidXNlTWF0cml4Q2xpZW50Q29udGV4dCIsIm1hcCIsInNldE1hcCIsInVzZVN0YXRlIiwidXNlRWZmZWN0IiwiY3JlYXRlTWFwIiwiZXJyb3IiLCJjb25zb2xlIiwiRXJyb3IiLCJyZW1vdmUiLCJ1bmRlZmluZWQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxzL2xvY2F0aW9uL3VzZU1hcC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHlcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5cbmltcG9ydCB0eXBlIHsgTWFwIGFzIE1hcExpYnJlTWFwIH0gZnJvbSBcIm1hcGxpYnJlLWdsXCI7XG5pbXBvcnQgeyBjcmVhdGVNYXAgfSBmcm9tIFwiLi9tYXBcIjtcbmltcG9ydCB7IHVzZU1hdHJpeENsaWVudENvbnRleHQgfSBmcm9tIFwiLi4vLi4vY29udGV4dHMvTWF0cml4Q2xpZW50Q29udGV4dFwiO1xuXG5pbnRlcmZhY2UgVXNlTWFwUHJvcHMge1xuICAgIGJvZHlJZDogc3RyaW5nO1xuICAgIG9uRXJyb3I/OiAoZXJyb3I6IEVycm9yKSA9PiB2b2lkO1xuICAgIGludGVyYWN0aXZlPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBDcmVhdGUgYSBtYXAgaW5zdGFuY2VcbiAqIEFkZCBsaXN0ZW5lcnMgZm9yIGVycm9yc1xuICogTWFrZSBzdXJlIGBvbkVycm9yYCBoYXMgYSBzdGFibGUgcmVmZXJlbmNlXG4gKiBBcyBtYXAgaXMgcmVjcmVhdGVkIG9uIGNoYW5nZXMgdG8gaXRcbiAqL1xuZXhwb3J0IGNvbnN0IHVzZU1hcCA9ICh7IGludGVyYWN0aXZlLCBib2R5SWQsIG9uRXJyb3IgfTogVXNlTWFwUHJvcHMpOiBNYXBMaWJyZU1hcCB8IHVuZGVmaW5lZCA9PiB7XG4gICAgY29uc3QgY2xpID0gdXNlTWF0cml4Q2xpZW50Q29udGV4dCgpO1xuICAgIGNvbnN0IFttYXAsIHNldE1hcF0gPSB1c2VTdGF0ZTxNYXBMaWJyZU1hcD4oKTtcblxuICAgIHVzZUVmZmVjdChcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBzZXRNYXAoY3JlYXRlTWFwKGNsaSwgISFpbnRlcmFjdGl2ZSwgYm9keUlkLCBvbkVycm9yKSk7XG4gICAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJFcnJvciBlbmNvdW50ZXJlZCBpbiB1c2VNYXBcIiwgZXJyb3IpO1xuICAgICAgICAgICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgIG9uRXJyb3I/LihlcnJvcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAobWFwKSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcC5yZW1vdmUoKTtcbiAgICAgICAgICAgICAgICAgICAgc2V0TWFwKHVuZGVmaW5lZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSxcbiAgICAgICAgLy8gbWFwIGlzIGV4Y2x1ZGVkIGFzIGEgZGVwZW5kZW5jeVxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG4gICAgICAgIFtpbnRlcmFjdGl2ZSwgYm9keUlkLCBvbkVycm9yXSxcbiAgICApO1xuXG4gICAgcmV0dXJuIG1hcDtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQVFBLElBQUFBLE1BQUEsR0FBQUMsT0FBQTtBQUdBLElBQUFDLElBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLG9CQUFBLEdBQUFGLE9BQUE7QUFaQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFjQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTyxNQUFNRyxNQUFNLEdBQUdBLENBQUM7RUFBRUMsV0FBVztFQUFFQyxNQUFNO0VBQUVDO0FBQXFCLENBQUMsS0FBOEI7RUFDOUYsTUFBTUMsR0FBRyxHQUFHLElBQUFDLDJDQUFzQixFQUFDLENBQUM7RUFDcEMsTUFBTSxDQUFDQyxHQUFHLEVBQUVDLE1BQU0sQ0FBQyxHQUFHLElBQUFDLGVBQVEsRUFBYyxDQUFDO0VBRTdDLElBQUFDLGdCQUFTLEVBQ0wsTUFBTTtJQUNGLElBQUk7TUFDQUYsTUFBTSxDQUFDLElBQUFHLGNBQVMsRUFBQ04sR0FBRyxFQUFFLENBQUMsQ0FBQ0gsV0FBVyxFQUFFQyxNQUFNLEVBQUVDLE9BQU8sQ0FBQyxDQUFDO0lBQzFELENBQUMsQ0FBQyxPQUFPUSxLQUFLLEVBQUU7TUFDWkMsT0FBTyxDQUFDRCxLQUFLLENBQUMsNkJBQTZCLEVBQUVBLEtBQUssQ0FBQztNQUNuRCxJQUFJQSxLQUFLLFlBQVlFLEtBQUssRUFBRTtRQUN4QlYsT0FBTyxHQUFHUSxLQUFLLENBQUM7TUFDcEI7SUFDSjtJQUNBLE9BQU8sTUFBTTtNQUNULElBQUlMLEdBQUcsRUFBRTtRQUNMQSxHQUFHLENBQUNRLE1BQU0sQ0FBQyxDQUFDO1FBQ1pQLE1BQU0sQ0FBQ1EsU0FBUyxDQUFDO01BQ3JCO0lBQ0osQ0FBQztFQUNMLENBQUM7RUFDRDtFQUNBO0VBQ0EsQ0FBQ2QsV0FBVyxFQUFFQyxNQUFNLEVBQUVDLE9BQU8sQ0FDakMsQ0FBQztFQUVELE9BQU9HLEdBQUc7QUFDZCxDQUFDO0FBQUNVLE9BQUEsQ0FBQWhCLE1BQUEsR0FBQUEsTUFBQSIsImlnbm9yZUxpc3QiOltdfQ==