UNPKG

matrix-react-sdk

Version:
53 lines (50 loc) 5.16 kB
"use strict"; 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==