matrix-react-sdk
Version:
SDK for matrix.org using React
64 lines (61 loc) • 7.75 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.roomContextDetails = roomContextDetails;
var _SpaceStore = _interopRequireDefault(require("../stores/spaces/SpaceStore"));
var _languageHandler = require("../languageHandler");
var _DMRoomMap = _interopRequireDefault(require("./DMRoomMap"));
var _FormattingUtils = require("./FormattingUtils");
/*
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.
*/
function roomContextDetails(room) {
const dmPartner = _DMRoomMap.default.shared().getUserIdForRoomId(room.roomId);
// if we’ve got more than 2 users, don’t treat it like a regular DM
const isGroupDm = room.getMembers().length > 2;
if (!room.isSpaceRoom() && dmPartner && !isGroupDm) {
return {
details: dmPartner
};
}
const [parent, secondParent, ...otherParents] = _SpaceStore.default.instance.getKnownParents(room.roomId);
if (secondParent && !otherParents?.length) {
// exactly 2 edge case for improved i18n
const space1Name = room.client.getRoom(parent)?.name;
const space2Name = room.client.getRoom(secondParent)?.name;
return {
details: (0, _FormattingUtils.formatList)([space1Name ?? "", space2Name ?? ""]),
ariaLabel: (0, _languageHandler._t)("in_space1_and_space2", {
space1Name,
space2Name
})
};
} else if (parent) {
const spaceName = room.client.getRoom(parent)?.name ?? "";
const count = otherParents.length;
if (count > 0) {
return {
details: (0, _FormattingUtils.formatList)([spaceName, ...otherParents], 1),
ariaLabel: (0, _languageHandler._t)("in_space_and_n_other_spaces", {
spaceName,
count
})
};
}
return {
details: spaceName,
ariaLabel: (0, _languageHandler._t)("in_space", {
spaceName
})
};
}
return {
details: room.getCanonicalAlias()
};
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfU3BhY2VTdG9yZSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2xhbmd1YWdlSGFuZGxlciIsIl9ETVJvb21NYXAiLCJfRm9ybWF0dGluZ1V0aWxzIiwicm9vbUNvbnRleHREZXRhaWxzIiwicm9vbSIsImRtUGFydG5lciIsIkRNUm9vbU1hcCIsInNoYXJlZCIsImdldFVzZXJJZEZvclJvb21JZCIsInJvb21JZCIsImlzR3JvdXBEbSIsImdldE1lbWJlcnMiLCJsZW5ndGgiLCJpc1NwYWNlUm9vbSIsImRldGFpbHMiLCJwYXJlbnQiLCJzZWNvbmRQYXJlbnQiLCJvdGhlclBhcmVudHMiLCJTcGFjZVN0b3JlIiwiaW5zdGFuY2UiLCJnZXRLbm93blBhcmVudHMiLCJzcGFjZTFOYW1lIiwiY2xpZW50IiwiZ2V0Um9vbSIsIm5hbWUiLCJzcGFjZTJOYW1lIiwiZm9ybWF0TGlzdCIsImFyaWFMYWJlbCIsIl90Iiwic3BhY2VOYW1lIiwiY291bnQiLCJnZXRDYW5vbmljYWxBbGlhcyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9pMThuLWhlbHBlcnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5XG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuaW1wb3J0IHsgUm9vbSB9IGZyb20gXCJtYXRyaXgtanMtc2RrL3NyYy9tYXRyaXhcIjtcblxuaW1wb3J0IFNwYWNlU3RvcmUgZnJvbSBcIi4uL3N0b3Jlcy9zcGFjZXMvU3BhY2VTdG9yZVwiO1xuaW1wb3J0IHsgX3QgfSBmcm9tIFwiLi4vbGFuZ3VhZ2VIYW5kbGVyXCI7XG5pbXBvcnQgRE1Sb29tTWFwIGZyb20gXCIuL0RNUm9vbU1hcFwiO1xuaW1wb3J0IHsgZm9ybWF0TGlzdCB9IGZyb20gXCIuL0Zvcm1hdHRpbmdVdGlsc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJvb21Db250ZXh0RGV0YWlscyB7XG4gICAgZGV0YWlsczogc3RyaW5nIHwgbnVsbDtcbiAgICBhcmlhTGFiZWw/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByb29tQ29udGV4dERldGFpbHMocm9vbTogUm9vbSk6IFJvb21Db250ZXh0RGV0YWlscyB8IG51bGwge1xuICAgIGNvbnN0IGRtUGFydG5lciA9IERNUm9vbU1hcC5zaGFyZWQoKS5nZXRVc2VySWRGb3JSb29tSWQocm9vbS5yb29tSWQpO1xuICAgIC8vIGlmIHdl4oCZdmUgZ290IG1vcmUgdGhhbiAyIHVzZXJzLCBkb27igJl0IHRyZWF0IGl0IGxpa2UgYSByZWd1bGFyIERNXG4gICAgY29uc3QgaXNHcm91cERtID0gcm9vbS5nZXRNZW1iZXJzKCkubGVuZ3RoID4gMjtcbiAgICBpZiAoIXJvb20uaXNTcGFjZVJvb20oKSAmJiBkbVBhcnRuZXIgJiYgIWlzR3JvdXBEbSkge1xuICAgICAgICByZXR1cm4geyBkZXRhaWxzOiBkbVBhcnRuZXIgfTtcbiAgICB9XG5cbiAgICBjb25zdCBbcGFyZW50LCBzZWNvbmRQYXJlbnQsIC4uLm90aGVyUGFyZW50c10gPSBTcGFjZVN0b3JlLmluc3RhbmNlLmdldEtub3duUGFyZW50cyhyb29tLnJvb21JZCk7XG4gICAgaWYgKHNlY29uZFBhcmVudCAmJiAhb3RoZXJQYXJlbnRzPy5sZW5ndGgpIHtcbiAgICAgICAgLy8gZXhhY3RseSAyIGVkZ2UgY2FzZSBmb3IgaW1wcm92ZWQgaTE4blxuICAgICAgICBjb25zdCBzcGFjZTFOYW1lID0gcm9vbS5jbGllbnQuZ2V0Um9vbShwYXJlbnQpPy5uYW1lO1xuICAgICAgICBjb25zdCBzcGFjZTJOYW1lID0gcm9vbS5jbGllbnQuZ2V0Um9vbShzZWNvbmRQYXJlbnQpPy5uYW1lO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZGV0YWlsczogZm9ybWF0TGlzdChbc3BhY2UxTmFtZSA/PyBcIlwiLCBzcGFjZTJOYW1lID8/IFwiXCJdKSxcbiAgICAgICAgICAgIGFyaWFMYWJlbDogX3QoXCJpbl9zcGFjZTFfYW5kX3NwYWNlMlwiLCB7IHNwYWNlMU5hbWUsIHNwYWNlMk5hbWUgfSksXG4gICAgICAgIH07XG4gICAgfSBlbHNlIGlmIChwYXJlbnQpIHtcbiAgICAgICAgY29uc3Qgc3BhY2VOYW1lID0gcm9vbS5jbGllbnQuZ2V0Um9vbShwYXJlbnQpPy5uYW1lID8/IFwiXCI7XG4gICAgICAgIGNvbnN0IGNvdW50ID0gb3RoZXJQYXJlbnRzLmxlbmd0aDtcbiAgICAgICAgaWYgKGNvdW50ID4gMCkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBkZXRhaWxzOiBmb3JtYXRMaXN0KFtzcGFjZU5hbWUsIC4uLm90aGVyUGFyZW50c10sIDEpLFxuICAgICAgICAgICAgICAgIGFyaWFMYWJlbDogX3QoXCJpbl9zcGFjZV9hbmRfbl9vdGhlcl9zcGFjZXNcIiwgeyBzcGFjZU5hbWUsIGNvdW50IH0pLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZGV0YWlsczogc3BhY2VOYW1lLFxuICAgICAgICAgICAgYXJpYUxhYmVsOiBfdChcImluX3NwYWNlXCIsIHsgc3BhY2VOYW1lIH0pLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiB7IGRldGFpbHM6IHJvb20uZ2V0Q2Fub25pY2FsQWxpYXMoKSB9O1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBVUEsSUFBQUEsV0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsZ0JBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLFVBQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFHLGdCQUFBLEdBQUFILE9BQUE7QUFiQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFjTyxTQUFTSSxrQkFBa0JBLENBQUNDLElBQVUsRUFBNkI7RUFDdEUsTUFBTUMsU0FBUyxHQUFHQyxrQkFBUyxDQUFDQyxNQUFNLENBQUMsQ0FBQyxDQUFDQyxrQkFBa0IsQ0FBQ0osSUFBSSxDQUFDSyxNQUFNLENBQUM7RUFDcEU7RUFDQSxNQUFNQyxTQUFTLEdBQUdOLElBQUksQ0FBQ08sVUFBVSxDQUFDLENBQUMsQ0FBQ0MsTUFBTSxHQUFHLENBQUM7RUFDOUMsSUFBSSxDQUFDUixJQUFJLENBQUNTLFdBQVcsQ0FBQyxDQUFDLElBQUlSLFNBQVMsSUFBSSxDQUFDSyxTQUFTLEVBQUU7SUFDaEQsT0FBTztNQUFFSSxPQUFPLEVBQUVUO0lBQVUsQ0FBQztFQUNqQztFQUVBLE1BQU0sQ0FBQ1UsTUFBTSxFQUFFQyxZQUFZLEVBQUUsR0FBR0MsWUFBWSxDQUFDLEdBQUdDLG1CQUFVLENBQUNDLFFBQVEsQ0FBQ0MsZUFBZSxDQUFDaEIsSUFBSSxDQUFDSyxNQUFNLENBQUM7RUFDaEcsSUFBSU8sWUFBWSxJQUFJLENBQUNDLFlBQVksRUFBRUwsTUFBTSxFQUFFO0lBQ3ZDO0lBQ0EsTUFBTVMsVUFBVSxHQUFHakIsSUFBSSxDQUFDa0IsTUFBTSxDQUFDQyxPQUFPLENBQUNSLE1BQU0sQ0FBQyxFQUFFUyxJQUFJO0lBQ3BELE1BQU1DLFVBQVUsR0FBR3JCLElBQUksQ0FBQ2tCLE1BQU0sQ0FBQ0MsT0FBTyxDQUFDUCxZQUFZLENBQUMsRUFBRVEsSUFBSTtJQUMxRCxPQUFPO01BQ0hWLE9BQU8sRUFBRSxJQUFBWSwyQkFBVSxFQUFDLENBQUNMLFVBQVUsSUFBSSxFQUFFLEVBQUVJLFVBQVUsSUFBSSxFQUFFLENBQUMsQ0FBQztNQUN6REUsU0FBUyxFQUFFLElBQUFDLG1CQUFFLEVBQUMsc0JBQXNCLEVBQUU7UUFBRVAsVUFBVTtRQUFFSTtNQUFXLENBQUM7SUFDcEUsQ0FBQztFQUNMLENBQUMsTUFBTSxJQUFJVixNQUFNLEVBQUU7SUFDZixNQUFNYyxTQUFTLEdBQUd6QixJQUFJLENBQUNrQixNQUFNLENBQUNDLE9BQU8sQ0FBQ1IsTUFBTSxDQUFDLEVBQUVTLElBQUksSUFBSSxFQUFFO0lBQ3pELE1BQU1NLEtBQUssR0FBR2IsWUFBWSxDQUFDTCxNQUFNO0lBQ2pDLElBQUlrQixLQUFLLEdBQUcsQ0FBQyxFQUFFO01BQ1gsT0FBTztRQUNIaEIsT0FBTyxFQUFFLElBQUFZLDJCQUFVLEVBQUMsQ0FBQ0csU0FBUyxFQUFFLEdBQUdaLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNwRFUsU0FBUyxFQUFFLElBQUFDLG1CQUFFLEVBQUMsNkJBQTZCLEVBQUU7VUFBRUMsU0FBUztVQUFFQztRQUFNLENBQUM7TUFDckUsQ0FBQztJQUNMO0lBQ0EsT0FBTztNQUNIaEIsT0FBTyxFQUFFZSxTQUFTO01BQ2xCRixTQUFTLEVBQUUsSUFBQUMsbUJBQUUsRUFBQyxVQUFVLEVBQUU7UUFBRUM7TUFBVSxDQUFDO0lBQzNDLENBQUM7RUFDTDtFQUVBLE9BQU87SUFBRWYsT0FBTyxFQUFFVixJQUFJLENBQUMyQixpQkFBaUIsQ0FBQztFQUFFLENBQUM7QUFDaEQiLCJpZ25vcmVMaXN0IjpbXX0=