matrix-react-sdk
Version:
SDK for matrix.org using React
105 lines (86 loc) • 12.6 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _react = _interopRequireDefault(require("react"));
var _languageHandler = require("../../../../../languageHandler");
var _MatrixClientPeg = require("../../../../../MatrixClientPeg");
var _BridgeTile = _interopRequireDefault(require("../../BridgeTile"));
var _replaceableComponent = require("../../../../../utils/replaceableComponent");
var _dec, _class;
const BRIDGE_EVENT_TYPES = ["uk.half-shot.bridge" // m.bridge
];
const BRIDGES_LINK = "https://matrix.org/bridges/";
let BridgeSettingsTab = (_dec = (0, _replaceableComponent.replaceableComponent)("views.settings.tabs.room.BridgeSettingsTab"), _dec(_class = class BridgeSettingsTab extends _react.default.Component
/*:: <IProps>*/
{
renderBridgeCard(event
/*: MatrixEvent*/
, room
/*: Room*/
) {
const content = event.getContent();
if (!content || !content.channel || !content.protocol) {
return null;
}
return /*#__PURE__*/_react.default.createElement(_BridgeTile.default, {
key: event.getId(),
room: room,
ev: event
});
}
static getBridgeStateEvents(roomId
/*: string*/
) {
const client = _MatrixClientPeg.MatrixClientPeg.get();
const roomState = client.getRoom(roomId).currentState;
return BRIDGE_EVENT_TYPES.map(typeName => {
const events = roomState.events.get(typeName);
return events ? Array.from(events.values()) : [];
}).flat(1);
}
render() {
// This settings tab will only be invoked if the following function returns more
// than 0 events, so no validation is needed at this stage.
const bridgeEvents = BridgeSettingsTab.getBridgeStateEvents(this.props.roomId);
const client = _MatrixClientPeg.MatrixClientPeg.get();
const room = client.getRoom(this.props.roomId);
let content
/*: JSX.Element*/
;
if (bridgeEvents.length > 0) {
content = /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("p", null, (0, _languageHandler._t)("This room is bridging messages to the following platforms. " + "<a>Learn more.</a>", {}, {
// TODO: We don't have this link yet: this will prevent the translators
// having to re-translate the string when we do.
a: sub => /*#__PURE__*/_react.default.createElement("a", {
href: BRIDGES_LINK,
target: "_blank",
rel: "noreferrer noopener"
}, sub)
})), /*#__PURE__*/_react.default.createElement("ul", {
className: "mx_RoomSettingsDialog_BridgeList"
}, bridgeEvents.map(event => this.renderBridgeCard(event, room))));
} else {
content = /*#__PURE__*/_react.default.createElement("p", null, (0, _languageHandler._t)("This room isn’t bridging messages to any platforms. " + "<a>Learn more.</a>", {}, {
// TODO: We don't have this link yet: this will prevent the translators
// having to re-translate the string when we do.
a: sub => /*#__PURE__*/_react.default.createElement("a", {
href: BRIDGES_LINK,
target: "_blank",
rel: "noreferrer noopener"
}, sub)
}));
}
return /*#__PURE__*/_react.default.createElement("div", {
className: "mx_SettingsTab"
}, /*#__PURE__*/_react.default.createElement("div", {
className: "mx_SettingsTab_heading"
}, (0, _languageHandler._t)("Bridges")), /*#__PURE__*/_react.default.createElement("div", {
className: "mx_SettingsTab_section mx_SettingsTab_subsectionText"
}, content));
}
}) || _class);
exports.default = BridgeSettingsTab;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3ZpZXdzL3NldHRpbmdzL3RhYnMvcm9vbS9CcmlkZ2VTZXR0aW5nc1RhYi50c3giXSwibmFtZXMiOlsiQlJJREdFX0VWRU5UX1RZUEVTIiwiQlJJREdFU19MSU5LIiwiQnJpZGdlU2V0dGluZ3NUYWIiLCJSZWFjdCIsIkNvbXBvbmVudCIsInJlbmRlckJyaWRnZUNhcmQiLCJldmVudCIsInJvb20iLCJjb250ZW50IiwiZ2V0Q29udGVudCIsImNoYW5uZWwiLCJwcm90b2NvbCIsImdldElkIiwiZ2V0QnJpZGdlU3RhdGVFdmVudHMiLCJyb29tSWQiLCJjbGllbnQiLCJNYXRyaXhDbGllbnRQZWciLCJnZXQiLCJyb29tU3RhdGUiLCJnZXRSb29tIiwiY3VycmVudFN0YXRlIiwibWFwIiwidHlwZU5hbWUiLCJldmVudHMiLCJBcnJheSIsImZyb20iLCJ2YWx1ZXMiLCJmbGF0IiwicmVuZGVyIiwiYnJpZGdlRXZlbnRzIiwicHJvcHMiLCJsZW5ndGgiLCJhIiwic3ViIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFnQkE7O0FBSUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7QUFFQSxNQUFNQSxrQkFBa0IsR0FBRyxDQUN2QixxQkFEdUIsQ0FFdkI7QUFGdUIsQ0FBM0I7QUFLQSxNQUFNQyxZQUFZLEdBQUcsNkJBQXJCO0lBT3FCQyxpQixXQURwQixnREFBcUIsNENBQXJCLEMsZ0JBQUQsTUFDcUJBLGlCQURyQixTQUMrQ0MsZUFBTUM7QUFEckQ7QUFDdUU7QUFDM0RDLEVBQUFBLGdCQUFSLENBQXlCQztBQUF6QjtBQUFBLElBQTZDQztBQUE3QztBQUFBLElBQXlEO0FBQ3JELFVBQU1DLE9BQU8sR0FBR0YsS0FBSyxDQUFDRyxVQUFOLEVBQWhCOztBQUNBLFFBQUksQ0FBQ0QsT0FBRCxJQUFZLENBQUNBLE9BQU8sQ0FBQ0UsT0FBckIsSUFBZ0MsQ0FBQ0YsT0FBTyxDQUFDRyxRQUE3QyxFQUF1RDtBQUNuRCxhQUFPLElBQVA7QUFDSDs7QUFDRCx3QkFBTyw2QkFBQyxtQkFBRDtBQUFZLE1BQUEsR0FBRyxFQUFFTCxLQUFLLENBQUNNLEtBQU4sRUFBakI7QUFBZ0MsTUFBQSxJQUFJLEVBQUVMLElBQXRDO0FBQTRDLE1BQUEsRUFBRSxFQUFFRDtBQUFoRCxNQUFQO0FBQ0g7O0FBRUQsU0FBT08sb0JBQVAsQ0FBNEJDO0FBQTVCO0FBQUEsSUFBNEM7QUFDeEMsVUFBTUMsTUFBTSxHQUFHQyxpQ0FBZ0JDLEdBQWhCLEVBQWY7O0FBQ0EsVUFBTUMsU0FBUyxHQUFHSCxNQUFNLENBQUNJLE9BQVAsQ0FBZUwsTUFBZixFQUF1Qk0sWUFBekM7QUFFQSxXQUFPcEIsa0JBQWtCLENBQUNxQixHQUFuQixDQUF1QkMsUUFBUSxJQUFJO0FBQ3RDLFlBQU1DLE1BQU0sR0FBR0wsU0FBUyxDQUFDSyxNQUFWLENBQWlCTixHQUFqQixDQUFxQkssUUFBckIsQ0FBZjtBQUNBLGFBQU9DLE1BQU0sR0FBR0MsS0FBSyxDQUFDQyxJQUFOLENBQVdGLE1BQU0sQ0FBQ0csTUFBUCxFQUFYLENBQUgsR0FBaUMsRUFBOUM7QUFDSCxLQUhNLEVBR0pDLElBSEksQ0FHQyxDQUhELENBQVA7QUFJSDs7QUFFREMsRUFBQUEsTUFBTSxHQUFHO0FBQ0w7QUFDQTtBQUNBLFVBQU1DLFlBQVksR0FBRzNCLGlCQUFpQixDQUFDVyxvQkFBbEIsQ0FBdUMsS0FBS2lCLEtBQUwsQ0FBV2hCLE1BQWxELENBQXJCOztBQUNBLFVBQU1DLE1BQU0sR0FBR0MsaUNBQWdCQyxHQUFoQixFQUFmOztBQUNBLFVBQU1WLElBQUksR0FBR1EsTUFBTSxDQUFDSSxPQUFQLENBQWUsS0FBS1csS0FBTCxDQUFXaEIsTUFBMUIsQ0FBYjtBQUVBLFFBQUlOO0FBQW9CO0FBQXhCOztBQUNBLFFBQUlxQixZQUFZLENBQUNFLE1BQWIsR0FBc0IsQ0FBMUIsRUFBNkI7QUFDekJ2QixNQUFBQSxPQUFPLGdCQUFHLHVEQUNOLHdDQUFJLHlCQUNBLGdFQUNBLG9CQUZBLEVBRXNCLEVBRnRCLEVBR0E7QUFDSTtBQUNBO0FBQ0F3QixRQUFBQSxDQUFDLEVBQUVDLEdBQUcsaUJBQUk7QUFBRyxVQUFBLElBQUksRUFBRWhDLFlBQVQ7QUFBdUIsVUFBQSxNQUFNLEVBQUMsUUFBOUI7QUFBdUMsVUFBQSxHQUFHLEVBQUM7QUFBM0MsV0FBa0VnQyxHQUFsRTtBQUhkLE9BSEEsQ0FBSixDQURNLGVBVU47QUFBSSxRQUFBLFNBQVMsRUFBQztBQUFkLFNBQ01KLFlBQVksQ0FBQ1IsR0FBYixDQUFrQmYsS0FBRCxJQUFXLEtBQUtELGdCQUFMLENBQXNCQyxLQUF0QixFQUE2QkMsSUFBN0IsQ0FBNUIsQ0FETixDQVZNLENBQVY7QUFjSCxLQWZELE1BZU87QUFDSEMsTUFBQUEsT0FBTyxnQkFBRyx3Q0FBSSx5QkFDVix5REFDQSxvQkFGVSxFQUVZLEVBRlosRUFHVjtBQUNJO0FBQ0E7QUFDQXdCLFFBQUFBLENBQUMsRUFBRUMsR0FBRyxpQkFBSTtBQUFHLFVBQUEsSUFBSSxFQUFFaEMsWUFBVDtBQUF1QixVQUFBLE1BQU0sRUFBQyxRQUE5QjtBQUF1QyxVQUFBLEdBQUcsRUFBQztBQUEzQyxXQUFrRWdDLEdBQWxFO0FBSGQsT0FIVSxDQUFKLENBQVY7QUFTSDs7QUFFRCx3QkFDSTtBQUFLLE1BQUEsU0FBUyxFQUFDO0FBQWYsb0JBQ0k7QUFBSyxNQUFBLFNBQVMsRUFBQztBQUFmLE9BQXlDLHlCQUFHLFNBQUgsQ0FBekMsQ0FESixlQUVJO0FBQUssTUFBQSxTQUFTLEVBQUM7QUFBZixPQUNLekIsT0FETCxDQUZKLENBREo7QUFRSDs7QUE5RGtFLEMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuQ29weXJpZ2h0IDIwMTksIDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbnlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbllvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuXG4gICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG5cblVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbmRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbldJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxubGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4qL1xuXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQge1Jvb219IGZyb20gXCJtYXRyaXgtanMtc2RrL3NyYy9tb2RlbHMvcm9vbVwiO1xuaW1wb3J0IHtNYXRyaXhFdmVudH0gZnJvbSBcIm1hdHJpeC1qcy1zZGsvc3JjL21vZGVscy9ldmVudFwiO1xuXG5pbXBvcnQge190fSBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vbGFuZ3VhZ2VIYW5kbGVyXCI7XG5pbXBvcnQge01hdHJpeENsaWVudFBlZ30gZnJvbSBcIi4uLy4uLy4uLy4uLy4uL01hdHJpeENsaWVudFBlZ1wiO1xuaW1wb3J0IEJyaWRnZVRpbGUgZnJvbSBcIi4uLy4uL0JyaWRnZVRpbGVcIjtcbmltcG9ydCB7cmVwbGFjZWFibGVDb21wb25lbnR9IGZyb20gXCIuLi8uLi8uLi8uLi8uLi91dGlscy9yZXBsYWNlYWJsZUNvbXBvbmVudFwiO1xuXG5jb25zdCBCUklER0VfRVZFTlRfVFlQRVMgPSBbXG4gICAgXCJ1ay5oYWxmLXNob3QuYnJpZGdlXCIsXG4gICAgLy8gbS5icmlkZ2Vcbl07XG5cbmNvbnN0IEJSSURHRVNfTElOSyA9IFwiaHR0cHM6Ly9tYXRyaXgub3JnL2JyaWRnZXMvXCI7XG5cbmludGVyZmFjZSBJUHJvcHMge1xuICAgIHJvb21JZDogc3RyaW5nO1xufVxuXG5AcmVwbGFjZWFibGVDb21wb25lbnQoXCJ2aWV3cy5zZXR0aW5ncy50YWJzLnJvb20uQnJpZGdlU2V0dGluZ3NUYWJcIilcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEJyaWRnZVNldHRpbmdzVGFiIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50PElQcm9wcz4ge1xuICAgIHByaXZhdGUgcmVuZGVyQnJpZGdlQ2FyZChldmVudDogTWF0cml4RXZlbnQsIHJvb206IFJvb20pIHtcbiAgICAgICAgY29uc3QgY29udGVudCA9IGV2ZW50LmdldENvbnRlbnQoKTtcbiAgICAgICAgaWYgKCFjb250ZW50IHx8ICFjb250ZW50LmNoYW5uZWwgfHwgIWNvbnRlbnQucHJvdG9jb2wpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiA8QnJpZGdlVGlsZSBrZXk9e2V2ZW50LmdldElkKCl9IHJvb209e3Jvb219IGV2PXtldmVudH0gLz47XG4gICAgfVxuXG4gICAgc3RhdGljIGdldEJyaWRnZVN0YXRlRXZlbnRzKHJvb21JZDogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IGNsaWVudCA9IE1hdHJpeENsaWVudFBlZy5nZXQoKTtcbiAgICAgICAgY29uc3Qgcm9vbVN0YXRlID0gY2xpZW50LmdldFJvb20ocm9vbUlkKS5jdXJyZW50U3RhdGU7XG5cbiAgICAgICAgcmV0dXJuIEJSSURHRV9FVkVOVF9UWVBFUy5tYXAodHlwZU5hbWUgPT4ge1xuICAgICAgICAgICAgY29uc3QgZXZlbnRzID0gcm9vbVN0YXRlLmV2ZW50cy5nZXQodHlwZU5hbWUpO1xuICAgICAgICAgICAgcmV0dXJuIGV2ZW50cyA/IEFycmF5LmZyb20oZXZlbnRzLnZhbHVlcygpKSA6IFtdO1xuICAgICAgICB9KS5mbGF0KDEpO1xuICAgIH1cblxuICAgIHJlbmRlcigpIHtcbiAgICAgICAgLy8gVGhpcyBzZXR0aW5ncyB0YWIgd2lsbCBvbmx5IGJlIGludm9rZWQgaWYgdGhlIGZvbGxvd2luZyBmdW5jdGlvbiByZXR1cm5zIG1vcmVcbiAgICAgICAgLy8gdGhhbiAwIGV2ZW50cywgc28gbm8gdmFsaWRhdGlvbiBpcyBuZWVkZWQgYXQgdGhpcyBzdGFnZS5cbiAgICAgICAgY29uc3QgYnJpZGdlRXZlbnRzID0gQnJpZGdlU2V0dGluZ3NUYWIuZ2V0QnJpZGdlU3RhdGVFdmVudHModGhpcy5wcm9wcy5yb29tSWQpO1xuICAgICAgICBjb25zdCBjbGllbnQgPSBNYXRyaXhDbGllbnRQZWcuZ2V0KCk7XG4gICAgICAgIGNvbnN0IHJvb20gPSBjbGllbnQuZ2V0Um9vbSh0aGlzLnByb3BzLnJvb21JZCk7XG5cbiAgICAgICAgbGV0IGNvbnRlbnQ6IEpTWC5FbGVtZW50O1xuICAgICAgICBpZiAoYnJpZGdlRXZlbnRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnRlbnQgPSA8ZGl2PlxuICAgICAgICAgICAgICAgIDxwPntfdChcbiAgICAgICAgICAgICAgICAgICAgXCJUaGlzIHJvb20gaXMgYnJpZGdpbmcgbWVzc2FnZXMgdG8gdGhlIGZvbGxvd2luZyBwbGF0Zm9ybXMuIFwiICtcbiAgICAgICAgICAgICAgICAgICAgXCI8YT5MZWFybiBtb3JlLjwvYT5cIiwge30sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRPRE86IFdlIGRvbid0IGhhdmUgdGhpcyBsaW5rIHlldDogdGhpcyB3aWxsIHByZXZlbnQgdGhlIHRyYW5zbGF0b3JzXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBoYXZpbmcgdG8gcmUtdHJhbnNsYXRlIHRoZSBzdHJpbmcgd2hlbiB3ZSBkby5cbiAgICAgICAgICAgICAgICAgICAgICAgIGE6IHN1YiA9PiA8YSBocmVmPXtCUklER0VTX0xJTkt9IHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vcmVmZXJyZXIgbm9vcGVuZXJcIj57c3VifTwvYT4sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgKX08L3A+XG4gICAgICAgICAgICAgICAgPHVsIGNsYXNzTmFtZT1cIm14X1Jvb21TZXR0aW5nc0RpYWxvZ19CcmlkZ2VMaXN0XCI+XG4gICAgICAgICAgICAgICAgICAgIHsgYnJpZGdlRXZlbnRzLm1hcCgoZXZlbnQpID0+IHRoaXMucmVuZGVyQnJpZGdlQ2FyZChldmVudCwgcm9vbSkpIH1cbiAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgPC9kaXY+O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29udGVudCA9IDxwPntfdChcbiAgICAgICAgICAgICAgICBcIlRoaXMgcm9vbSBpc27igJl0IGJyaWRnaW5nIG1lc3NhZ2VzIHRvIGFueSBwbGF0Zm9ybXMuIFwiICtcbiAgICAgICAgICAgICAgICBcIjxhPkxlYXJuIG1vcmUuPC9hPlwiLCB7fSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFRPRE86IFdlIGRvbid0IGhhdmUgdGhpcyBsaW5rIHlldDogdGhpcyB3aWxsIHByZXZlbnQgdGhlIHRyYW5zbGF0b3JzXG4gICAgICAgICAgICAgICAgICAgIC8vIGhhdmluZyB0byByZS10cmFuc2xhdGUgdGhlIHN0cmluZyB3aGVuIHdlIGRvLlxuICAgICAgICAgICAgICAgICAgICBhOiBzdWIgPT4gPGEgaHJlZj17QlJJREdFU19MSU5LfSB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub3JlZmVycmVyIG5vb3BlbmVyXCI+e3N1Yn08L2E+LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICApfTwvcD47XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJteF9TZXR0aW5nc1RhYlwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibXhfU2V0dGluZ3NUYWJfaGVhZGluZ1wiPntfdChcIkJyaWRnZXNcIil9PC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J214X1NldHRpbmdzVGFiX3NlY3Rpb24gbXhfU2V0dGluZ3NUYWJfc3Vic2VjdGlvblRleHQnPlxuICAgICAgICAgICAgICAgICAgICB7Y29udGVudH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==