UNPKG

matrix-react-sdk

Version:
77 lines (74 loc) 11.5 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _react = _interopRequireDefault(require("react")); var _matrix = require("matrix-js-sdk/src/matrix"); var _LabelledToggleSwitch = _interopRequireDefault(require("../elements/LabelledToggleSwitch")); var _languageHandler = require("../../../languageHandler"); var _MatrixClientPeg = require("../../../MatrixClientPeg"); var _Directory = _interopRequireDefault(require("../../../customisations/Directory")); var _Modal = _interopRequireDefault(require("../../../Modal")); var _ErrorDialog = _interopRequireDefault(require("../dialogs/ErrorDialog")); /* Copyright 2024 New Vector Ltd. Copyright 2020, 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. */ class RoomPublishSetting extends _react.default.PureComponent { constructor(props) { super(props); (0, _defineProperty2.default)(this, "onRoomPublishChange", () => { const valueBefore = this.state.isRoomPublished; const newValue = !valueBefore; this.setState({ isRoomPublished: newValue }); const client = _MatrixClientPeg.MatrixClientPeg.safeGet(); client.setRoomDirectoryVisibility(this.props.roomId, newValue ? _matrix.Visibility.Public : _matrix.Visibility.Private).catch(() => { this.showError(); // Roll back the local echo on the change this.setState({ isRoomPublished: valueBefore }); }); }); this.state = { isRoomPublished: false }; } showError() { _Modal.default.createDialog(_ErrorDialog.default, { title: (0, _languageHandler._t)("room_settings|general|error_publishing"), description: (0, _languageHandler._t)("room_settings|general|error_publishing_detail") }); } componentDidMount() { const client = _MatrixClientPeg.MatrixClientPeg.safeGet(); client.getRoomDirectoryVisibility(this.props.roomId).then(result => { this.setState({ isRoomPublished: result.visibility === "public" }); }); } render() { const client = _MatrixClientPeg.MatrixClientPeg.safeGet(); const room = client.getRoom(this.props.roomId); const isRoomPublishable = room && room.getJoinRule() !== _matrix.JoinRule.Invite; const enabled = (_Directory.default.requireCanonicalAliasAccessToPublish?.() === false || this.props.canSetCanonicalAlias) && (isRoomPublishable || this.state.isRoomPublished); return /*#__PURE__*/_react.default.createElement(_LabelledToggleSwitch.default, { value: this.state.isRoomPublished, onChange: this.onRoomPublishChange, disabled: !enabled, label: (0, _languageHandler._t)("room_settings|general|publish_toggle", { domain: client.getDomain() }) }); } } exports.default = RoomPublishSetting; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9tYXRyaXgiLCJfTGFiZWxsZWRUb2dnbGVTd2l0Y2giLCJfbGFuZ3VhZ2VIYW5kbGVyIiwiX01hdHJpeENsaWVudFBlZyIsIl9EaXJlY3RvcnkiLCJfTW9kYWwiLCJfRXJyb3JEaWFsb2ciLCJSb29tUHVibGlzaFNldHRpbmciLCJSZWFjdCIsIlB1cmVDb21wb25lbnQiLCJjb25zdHJ1Y3RvciIsInByb3BzIiwiX2RlZmluZVByb3BlcnR5MiIsImRlZmF1bHQiLCJ2YWx1ZUJlZm9yZSIsInN0YXRlIiwiaXNSb29tUHVibGlzaGVkIiwibmV3VmFsdWUiLCJzZXRTdGF0ZSIsImNsaWVudCIsIk1hdHJpeENsaWVudFBlZyIsInNhZmVHZXQiLCJzZXRSb29tRGlyZWN0b3J5VmlzaWJpbGl0eSIsInJvb21JZCIsIlZpc2liaWxpdHkiLCJQdWJsaWMiLCJQcml2YXRlIiwiY2F0Y2giLCJzaG93RXJyb3IiLCJNb2RhbCIsImNyZWF0ZURpYWxvZyIsIkVycm9yRGlhbG9nIiwidGl0bGUiLCJfdCIsImRlc2NyaXB0aW9uIiwiY29tcG9uZW50RGlkTW91bnQiLCJnZXRSb29tRGlyZWN0b3J5VmlzaWJpbGl0eSIsInRoZW4iLCJyZXN1bHQiLCJ2aXNpYmlsaXR5IiwicmVuZGVyIiwicm9vbSIsImdldFJvb20iLCJpc1Jvb21QdWJsaXNoYWJsZSIsImdldEpvaW5SdWxlIiwiSm9pblJ1bGUiLCJJbnZpdGUiLCJlbmFibGVkIiwiRGlyZWN0b3J5Q3VzdG9taXNhdGlvbnMiLCJyZXF1aXJlQ2Fub25pY2FsQWxpYXNBY2Nlc3NUb1B1Ymxpc2giLCJjYW5TZXRDYW5vbmljYWxBbGlhcyIsImNyZWF0ZUVsZW1lbnQiLCJ2YWx1ZSIsIm9uQ2hhbmdlIiwib25Sb29tUHVibGlzaENoYW5nZSIsImRpc2FibGVkIiwibGFiZWwiLCJkb21haW4iLCJnZXREb21haW4iLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvdmlld3Mvcm9vbV9zZXR0aW5ncy9Sb29tUHVibGlzaFNldHRpbmcudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwLCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seVxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IEpvaW5SdWxlLCBWaXNpYmlsaXR5IH0gZnJvbSBcIm1hdHJpeC1qcy1zZGsvc3JjL21hdHJpeFwiO1xuXG5pbXBvcnQgTGFiZWxsZWRUb2dnbGVTd2l0Y2ggZnJvbSBcIi4uL2VsZW1lbnRzL0xhYmVsbGVkVG9nZ2xlU3dpdGNoXCI7XG5pbXBvcnQgeyBfdCB9IGZyb20gXCIuLi8uLi8uLi9sYW5ndWFnZUhhbmRsZXJcIjtcbmltcG9ydCB7IE1hdHJpeENsaWVudFBlZyB9IGZyb20gXCIuLi8uLi8uLi9NYXRyaXhDbGllbnRQZWdcIjtcbmltcG9ydCBEaXJlY3RvcnlDdXN0b21pc2F0aW9ucyBmcm9tIFwiLi4vLi4vLi4vY3VzdG9taXNhdGlvbnMvRGlyZWN0b3J5XCI7XG5pbXBvcnQgTW9kYWwgZnJvbSBcIi4uLy4uLy4uL01vZGFsXCI7XG5pbXBvcnQgRXJyb3JEaWFsb2cgZnJvbSBcIi4uL2RpYWxvZ3MvRXJyb3JEaWFsb2dcIjtcblxuaW50ZXJmYWNlIElQcm9wcyB7XG4gICAgcm9vbUlkOiBzdHJpbmc7XG4gICAgbGFiZWw/OiBzdHJpbmc7XG4gICAgY2FuU2V0Q2Fub25pY2FsQWxpYXM/OiBib29sZWFuO1xufVxuXG5pbnRlcmZhY2UgSVN0YXRlIHtcbiAgICBpc1Jvb21QdWJsaXNoZWQ6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJvb21QdWJsaXNoU2V0dGluZyBleHRlbmRzIFJlYWN0LlB1cmVDb21wb25lbnQ8SVByb3BzLCBJU3RhdGU+IHtcbiAgICBwdWJsaWMgY29uc3RydWN0b3IocHJvcHM6IElQcm9wcykge1xuICAgICAgICBzdXBlcihwcm9wcyk7XG5cbiAgICAgICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgICAgICAgIGlzUm9vbVB1Ymxpc2hlZDogZmFsc2UsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzaG93RXJyb3IoKTogdm9pZCB7XG4gICAgICAgIE1vZGFsLmNyZWF0ZURpYWxvZyhFcnJvckRpYWxvZywge1xuICAgICAgICAgICAgdGl0bGU6IF90KFwicm9vbV9zZXR0aW5nc3xnZW5lcmFsfGVycm9yX3B1Ymxpc2hpbmdcIiksXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogX3QoXCJyb29tX3NldHRpbmdzfGdlbmVyYWx8ZXJyb3JfcHVibGlzaGluZ19kZXRhaWxcIiksXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25Sb29tUHVibGlzaENoYW5nZSA9ICgpOiB2b2lkID0+IHtcbiAgICAgICAgY29uc3QgdmFsdWVCZWZvcmUgPSB0aGlzLnN0YXRlLmlzUm9vbVB1Ymxpc2hlZDtcbiAgICAgICAgY29uc3QgbmV3VmFsdWUgPSAhdmFsdWVCZWZvcmU7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBpc1Jvb21QdWJsaXNoZWQ6IG5ld1ZhbHVlIH0pO1xuICAgICAgICBjb25zdCBjbGllbnQgPSBNYXRyaXhDbGllbnRQZWcuc2FmZUdldCgpO1xuXG4gICAgICAgIGNsaWVudFxuICAgICAgICAgICAgLnNldFJvb21EaXJlY3RvcnlWaXNpYmlsaXR5KHRoaXMucHJvcHMucm9vbUlkLCBuZXdWYWx1ZSA/IFZpc2liaWxpdHkuUHVibGljIDogVmlzaWJpbGl0eS5Qcml2YXRlKVxuICAgICAgICAgICAgLmNhdGNoKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNob3dFcnJvcigpO1xuICAgICAgICAgICAgICAgIC8vIFJvbGwgYmFjayB0aGUgbG9jYWwgZWNobyBvbiB0aGUgY2hhbmdlXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGlzUm9vbVB1Ymxpc2hlZDogdmFsdWVCZWZvcmUgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgcHVibGljIGNvbXBvbmVudERpZE1vdW50KCk6IHZvaWQge1xuICAgICAgICBjb25zdCBjbGllbnQgPSBNYXRyaXhDbGllbnRQZWcuc2FmZUdldCgpO1xuICAgICAgICBjbGllbnQuZ2V0Um9vbURpcmVjdG9yeVZpc2liaWxpdHkodGhpcy5wcm9wcy5yb29tSWQpLnRoZW4oKHJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGlzUm9vbVB1Ymxpc2hlZDogcmVzdWx0LnZpc2liaWxpdHkgPT09IFwicHVibGljXCIgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyByZW5kZXIoKTogUmVhY3QuUmVhY3ROb2RlIHtcbiAgICAgICAgY29uc3QgY2xpZW50ID0gTWF0cml4Q2xpZW50UGVnLnNhZmVHZXQoKTtcblxuICAgICAgICBjb25zdCByb29tID0gY2xpZW50LmdldFJvb20odGhpcy5wcm9wcy5yb29tSWQpO1xuICAgICAgICBjb25zdCBpc1Jvb21QdWJsaXNoYWJsZSA9IHJvb20gJiYgcm9vbS5nZXRKb2luUnVsZSgpICE9PSBKb2luUnVsZS5JbnZpdGU7XG5cbiAgICAgICAgY29uc3QgZW5hYmxlZCA9XG4gICAgICAgICAgICAoRGlyZWN0b3J5Q3VzdG9taXNhdGlvbnMucmVxdWlyZUNhbm9uaWNhbEFsaWFzQWNjZXNzVG9QdWJsaXNoPy4oKSA9PT0gZmFsc2UgfHxcbiAgICAgICAgICAgICAgICB0aGlzLnByb3BzLmNhblNldENhbm9uaWNhbEFsaWFzKSAmJlxuICAgICAgICAgICAgKGlzUm9vbVB1Ymxpc2hhYmxlIHx8IHRoaXMuc3RhdGUuaXNSb29tUHVibGlzaGVkKTtcblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPExhYmVsbGVkVG9nZ2xlU3dpdGNoXG4gICAgICAgICAgICAgICAgdmFsdWU9e3RoaXMuc3RhdGUuaXNSb29tUHVibGlzaGVkfVxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXt0aGlzLm9uUm9vbVB1Ymxpc2hDaGFuZ2V9XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9eyFlbmFibGVkfVxuICAgICAgICAgICAgICAgIGxhYmVsPXtfdChcInJvb21fc2V0dGluZ3N8Z2VuZXJhbHxwdWJsaXNoX3RvZ2dsZVwiLCB7XG4gICAgICAgICAgICAgICAgICAgIGRvbWFpbjogY2xpZW50LmdldERvbWFpbigpLFxuICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgKTtcbiAgICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBUUEsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsT0FBQSxHQUFBRCxPQUFBO0FBRUEsSUFBQUUscUJBQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFHLGdCQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxnQkFBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssVUFBQSxHQUFBTixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQU0sTUFBQSxHQUFBUCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQU8sWUFBQSxHQUFBUixzQkFBQSxDQUFBQyxPQUFBO0FBaEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQXNCZSxNQUFNUSxrQkFBa0IsU0FBU0MsY0FBSyxDQUFDQyxhQUFhLENBQWlCO0VBQ3pFQyxXQUFXQSxDQUFDQyxLQUFhLEVBQUU7SUFDOUIsS0FBSyxDQUFDQSxLQUFLLENBQUM7SUFBQyxJQUFBQyxnQkFBQSxDQUFBQyxPQUFBLCtC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