matrix-react-sdk
Version:
SDK for matrix.org using React
42 lines (38 loc) • 4.71 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.useRoomName = useRoomName;
var _matrix = require("matrix-js-sdk/src/matrix");
var _react = require("react");
var _useEventEmitter = require("./useEventEmitter");
var _languageHandler = require("../languageHandler");
/*
Copyright 2024 New Vector Ltd.
Copyright 2021 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 getRoomName = (room, oobName = "") => room?.name || oobName;
/**
* Determines the room name from a combination of the room model and potential
* out-of-band information
* @param room - The room model
* @param oobData - out-of-band information about the room
* @returns {string} the room name
*/
function useRoomName(room, oobData) {
let oobName = (0, _languageHandler._t)("common|unnamed_room");
if (oobData && oobData.name) {
oobName = oobData.name;
}
const [name, setName] = (0, _react.useState)(getRoomName(room, oobName));
(0, _useEventEmitter.useTypedEventEmitter)(room, _matrix.RoomEvent.Name, () => {
setName(getRoomName(room, oobName));
});
(0, _react.useEffect)(() => {
setName(getRoomName(room, oobName));
}, [room, oobName]);
return name;
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbWF0cml4IiwicmVxdWlyZSIsIl9yZWFjdCIsIl91c2VFdmVudEVtaXR0ZXIiLCJfbGFuZ3VhZ2VIYW5kbGVyIiwiZ2V0Um9vbU5hbWUiLCJyb29tIiwib29iTmFtZSIsIm5hbWUiLCJ1c2VSb29tTmFtZSIsIm9vYkRhdGEiLCJfdCIsInNldE5hbWUiLCJ1c2VTdGF0ZSIsInVzZVR5cGVkRXZlbnRFbWl0dGVyIiwiUm9vbUV2ZW50IiwiTmFtZSIsInVzZUVmZmVjdCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ob29rcy91c2VSb29tTmFtZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHlcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG5pbXBvcnQgeyBSb29tLCBSb29tRXZlbnQgfSBmcm9tIFwibWF0cml4LWpzLXNkay9zcmMvbWF0cml4XCI7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5cbmltcG9ydCB7IElPT0JEYXRhIH0gZnJvbSBcIi4uL3N0b3Jlcy9UaHJlZXBpZEludml0ZVN0b3JlXCI7XG5pbXBvcnQgeyB1c2VUeXBlZEV2ZW50RW1pdHRlciB9IGZyb20gXCIuL3VzZUV2ZW50RW1pdHRlclwiO1xuaW1wb3J0IHsgX3QgfSBmcm9tIFwiLi4vbGFuZ3VhZ2VIYW5kbGVyXCI7XG5cbmNvbnN0IGdldFJvb21OYW1lID0gKHJvb20/OiBSb29tLCBvb2JOYW1lID0gXCJcIik6IHN0cmluZyA9PiByb29tPy5uYW1lIHx8IG9vYk5hbWU7XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB0aGUgcm9vbSBuYW1lIGZyb20gYSBjb21iaW5hdGlvbiBvZiB0aGUgcm9vbSBtb2RlbCBhbmQgcG90ZW50aWFsXG4gKiBvdXQtb2YtYmFuZCBpbmZvcm1hdGlvblxuICogQHBhcmFtIHJvb20gLSBUaGUgcm9vbSBtb2RlbFxuICogQHBhcmFtIG9vYkRhdGEgLSBvdXQtb2YtYmFuZCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgcm9vbVxuICogQHJldHVybnMge3N0cmluZ30gdGhlIHJvb20gbmFtZVxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlUm9vbU5hbWUocm9vbT86IFJvb20sIG9vYkRhdGE/OiBJT09CRGF0YSk6IHN0cmluZyB7XG4gICAgbGV0IG9vYk5hbWUgPSBfdChcImNvbW1vbnx1bm5hbWVkX3Jvb21cIik7XG4gICAgaWYgKG9vYkRhdGEgJiYgb29iRGF0YS5uYW1lKSB7XG4gICAgICAgIG9vYk5hbWUgPSBvb2JEYXRhLm5hbWU7XG4gICAgfVxuXG4gICAgY29uc3QgW25hbWUsIHNldE5hbWVdID0gdXNlU3RhdGU8c3RyaW5nPihnZXRSb29tTmFtZShyb29tLCBvb2JOYW1lKSk7XG5cbiAgICB1c2VUeXBlZEV2ZW50RW1pdHRlcihyb29tLCBSb29tRXZlbnQuTmFtZSwgKCkgPT4ge1xuICAgICAgICBzZXROYW1lKGdldFJvb21OYW1lKHJvb20sIG9vYk5hbWUpKTtcbiAgICB9KTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHNldE5hbWUoZ2V0Um9vbU5hbWUocm9vbSwgb29iTmFtZSkpO1xuICAgIH0sIFtyb29tLCBvb2JOYW1lXSk7XG5cbiAgICByZXR1cm4gbmFtZTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBUUEsSUFBQUEsT0FBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsTUFBQSxHQUFBRCxPQUFBO0FBR0EsSUFBQUUsZ0JBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLGdCQUFBLEdBQUFILE9BQUE7QUFiQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFTQSxNQUFNSSxXQUFXLEdBQUdBLENBQUNDLElBQVcsRUFBRUMsT0FBTyxHQUFHLEVBQUUsS0FBYUQsSUFBSSxFQUFFRSxJQUFJLElBQUlELE9BQU87O0FBRWhGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ08sU0FBU0UsV0FBV0EsQ0FBQ0gsSUFBVyxFQUFFSSxPQUFrQixFQUFVO0VBQ2pFLElBQUlILE9BQU8sR0FBRyxJQUFBSSxtQkFBRSxFQUFDLHFCQUFxQixDQUFDO0VBQ3ZDLElBQUlELE9BQU8sSUFBSUEsT0FBTyxDQUFDRixJQUFJLEVBQUU7SUFDekJELE9BQU8sR0FBR0csT0FBTyxDQUFDRixJQUFJO0VBQzFCO0VBRUEsTUFBTSxDQUFDQSxJQUFJLEVBQUVJLE9BQU8sQ0FBQyxHQUFHLElBQUFDLGVBQVEsRUFBU1IsV0FBVyxDQUFDQyxJQUFJLEVBQUVDLE9BQU8sQ0FBQyxDQUFDO0VBRXBFLElBQUFPLHFDQUFvQixFQUFDUixJQUFJLEVBQUVTLGlCQUFTLENBQUNDLElBQUksRUFBRSxNQUFNO0lBQzdDSixPQUFPLENBQUNQLFdBQVcsQ0FBQ0MsSUFBSSxFQUFFQyxPQUFPLENBQUMsQ0FBQztFQUN2QyxDQUFDLENBQUM7RUFFRixJQUFBVSxnQkFBUyxFQUFDLE1BQU07SUFDWkwsT0FBTyxDQUFDUCxXQUFXLENBQUNDLElBQUksRUFBRUMsT0FBTyxDQUFDLENBQUM7RUFDdkMsQ0FBQyxFQUFFLENBQUNELElBQUksRUFBRUMsT0FBTyxDQUFDLENBQUM7RUFFbkIsT0FBT0MsSUFBSTtBQUNmIiwiaWdub3JlTGlzdCI6W119