matrix-react-sdk
Version:
SDK for matrix.org using React
77 lines (74 loc) • 11.5 kB
JavaScript
;
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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