UNPKG

matrix-react-sdk

Version:
41 lines (37 loc) 4.93 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getTopic = void 0; exports.useTopic = useTopic; var _react = require("react"); var _matrix = require("matrix-js-sdk/src/matrix"); var _useEventEmitter = require("../useEventEmitter"); /* 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 getTopic = room => { const content = room?.currentState?.getStateEvents(_matrix.EventType.RoomTopic, "")?.getContent(); return !!content ? _matrix.ContentHelpers.parseTopicContent(content) : null; }; /** * Helper to retrieve the room topic for given room * @param room * @returns the raw text and an html parsion version of the room topic */ exports.getTopic = getTopic; function useTopic(room) { const [topic, setTopic] = (0, _react.useState)(getTopic(room)); (0, _useEventEmitter.useTypedEventEmitter)(room?.currentState, _matrix.RoomStateEvent.Events, ev => { if (ev.getType() !== _matrix.EventType.RoomTopic) return; setTopic(getTopic(room)); }); (0, _react.useEffect)(() => { setTopic(getTopic(room)); }, [room]); return topic; } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwiX21hdHJpeCIsIl91c2VFdmVudEVtaXR0ZXIiLCJnZXRUb3BpYyIsInJvb20iLCJjb250ZW50IiwiY3VycmVudFN0YXRlIiwiZ2V0U3RhdGVFdmVudHMiLCJFdmVudFR5cGUiLCJSb29tVG9waWMiLCJnZXRDb250ZW50IiwiQ29udGVudEhlbHBlcnMiLCJwYXJzZVRvcGljQ29udGVudCIsImV4cG9ydHMiLCJ1c2VUb3BpYyIsInRvcGljIiwic2V0VG9waWMiLCJ1c2VTdGF0ZSIsInVzZVR5cGVkRXZlbnRFbWl0dGVyIiwiUm9vbVN0YXRlRXZlbnQiLCJFdmVudHMiLCJldiIsImdldFR5cGUiLCJ1c2VFZmZlY3QiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaG9va3Mvcm9vbS91c2VUb3BpYy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHlcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQge1xuICAgIEV2ZW50VHlwZSxcbiAgICBNYXRyaXhFdmVudCxcbiAgICBSb29tLFxuICAgIFJvb21TdGF0ZUV2ZW50LFxuICAgIENvbnRlbnRIZWxwZXJzLFxuICAgIE1Sb29tVG9waWNFdmVudENvbnRlbnQsXG59IGZyb20gXCJtYXRyaXgtanMtc2RrL3NyYy9tYXRyaXhcIjtcbmltcG9ydCB7IE9wdGlvbmFsIH0gZnJvbSBcIm1hdHJpeC1ldmVudHMtc2RrXCI7XG5cbmltcG9ydCB7IHVzZVR5cGVkRXZlbnRFbWl0dGVyIH0gZnJvbSBcIi4uL3VzZUV2ZW50RW1pdHRlclwiO1xuXG5leHBvcnQgY29uc3QgZ2V0VG9waWMgPSAocm9vbT86IFJvb20pOiBPcHRpb25hbDxDb250ZW50SGVscGVycy5Ub3BpY1N0YXRlPiA9PiB7XG4gICAgY29uc3QgY29udGVudCA9IHJvb20/LmN1cnJlbnRTdGF0ZT8uZ2V0U3RhdGVFdmVudHMoRXZlbnRUeXBlLlJvb21Ub3BpYywgXCJcIik/LmdldENvbnRlbnQ8TVJvb21Ub3BpY0V2ZW50Q29udGVudD4oKTtcbiAgICByZXR1cm4gISFjb250ZW50ID8gQ29udGVudEhlbHBlcnMucGFyc2VUb3BpY0NvbnRlbnQoY29udGVudCkgOiBudWxsO1xufTtcblxuLyoqXG4gKiBIZWxwZXIgdG8gcmV0cmlldmUgdGhlIHJvb20gdG9waWMgZm9yIGdpdmVuIHJvb21cbiAqIEBwYXJhbSByb29tXG4gKiBAcmV0dXJucyB0aGUgcmF3IHRleHQgYW5kIGFuIGh0bWwgcGFyc2lvbiB2ZXJzaW9uIG9mIHRoZSByb29tIHRvcGljXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VUb3BpYyhyb29tPzogUm9vbSk6IE9wdGlvbmFsPENvbnRlbnRIZWxwZXJzLlRvcGljU3RhdGU+IHtcbiAgICBjb25zdCBbdG9waWMsIHNldFRvcGljXSA9IHVzZVN0YXRlKGdldFRvcGljKHJvb20pKTtcbiAgICB1c2VUeXBlZEV2ZW50RW1pdHRlcihyb29tPy5jdXJyZW50U3RhdGUsIFJvb21TdGF0ZUV2ZW50LkV2ZW50cywgKGV2OiBNYXRyaXhFdmVudCkgPT4ge1xuICAgICAgICBpZiAoZXYuZ2V0VHlwZSgpICE9PSBFdmVudFR5cGUuUm9vbVRvcGljKSByZXR1cm47XG4gICAgICAgIHNldFRvcGljKGdldFRvcGljKHJvb20pKTtcbiAgICB9KTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBzZXRUb3BpYyhnZXRUb3BpYyhyb29tKSk7XG4gICAgfSwgW3Jvb21dKTtcblxuICAgIHJldHVybiB0b3BpYztcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQVFBLElBQUFBLE1BQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLE9BQUEsR0FBQUQsT0FBQTtBQVVBLElBQUFFLGdCQUFBLEdBQUFGLE9BQUE7QUFuQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBZU8sTUFBTUcsUUFBUSxHQUFJQyxJQUFXLElBQTBDO0VBQzFFLE1BQU1DLE9BQU8sR0FBR0QsSUFBSSxFQUFFRSxZQUFZLEVBQUVDLGNBQWMsQ0FBQ0MsaUJBQVMsQ0FBQ0MsU0FBUyxFQUFFLEVBQUUsQ0FBQyxFQUFFQyxVQUFVLENBQXlCLENBQUM7RUFDakgsT0FBTyxDQUFDLENBQUNMLE9BQU8sR0FBR00sc0JBQWMsQ0FBQ0MsaUJBQWlCLENBQUNQLE9BQU8sQ0FBQyxHQUFHLElBQUk7QUFDdkUsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSkFRLE9BQUEsQ0FBQVYsUUFBQSxHQUFBQSxRQUFBO0FBS08sU0FBU1csUUFBUUEsQ0FBQ1YsSUFBVyxFQUF1QztFQUN2RSxNQUFNLENBQUNXLEtBQUssRUFBRUMsUUFBUSxDQUFDLEdBQUcsSUFBQUMsZUFBUSxFQUFDZCxRQUFRLENBQUNDLElBQUksQ0FBQyxDQUFDO0VBQ2xELElBQUFjLHFDQUFvQixFQUFDZCxJQUFJLEVBQUVFLFlBQVksRUFBRWEsc0JBQWMsQ0FBQ0MsTUFBTSxFQUFHQyxFQUFlLElBQUs7SUFDakYsSUFBSUEsRUFBRSxDQUFDQyxPQUFPLENBQUMsQ0FBQyxLQUFLZCxpQkFBUyxDQUFDQyxTQUFTLEVBQUU7SUFDMUNPLFFBQVEsQ0FBQ2IsUUFBUSxDQUFDQyxJQUFJLENBQUMsQ0FBQztFQUM1QixDQUFDLENBQUM7RUFDRixJQUFBbUIsZ0JBQVMsRUFBQyxNQUFNO0lBQ1pQLFFBQVEsQ0FBQ2IsUUFBUSxDQUFDQyxJQUFJLENBQUMsQ0FBQztFQUM1QixDQUFDLEVBQUUsQ0FBQ0EsSUFBSSxDQUFDLENBQUM7RUFFVixPQUFPVyxLQUFLO0FBQ2hCIiwiaWdub3JlTGlzdCI6W119