UNPKG

matrix-react-sdk

Version:
150 lines (118 loc) 14.7 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.showSpaceInvite = exports.showCreateNewRoom = exports.showAddExistingRooms = exports.showSpaceSettings = exports.makeSpaceParentEvent = exports.shouldShowSpaceSettings = void 0; var _react = _interopRequireDefault(require("react")); var _event = require("matrix-js-sdk/src/@types/event"); var _Permalinks = require("../utils/permalinks/Permalinks"); var _Modal = _interopRequireDefault(require("../Modal")); var _SpaceSettingsDialog = _interopRequireDefault(require("../components/views/dialogs/SpaceSettingsDialog")); var _AddExistingToSpaceDialog = _interopRequireDefault(require("../components/views/dialogs/AddExistingToSpaceDialog")); var _CreateRoomDialog = _interopRequireDefault(require("../components/views/dialogs/CreateRoomDialog")); var _createRoom = _interopRequireDefault(require("../createRoom")); var _languageHandler = require("../languageHandler"); var _SpacePublicShare = _interopRequireDefault(require("../components/views/spaces/SpacePublicShare")); var _InfoDialog = _interopRequireDefault(require("../components/views/dialogs/InfoDialog")); var _RoomInvite = require("../RoomInvite"); /* Copyright 2021 The Matrix.org Foundation C.I.C. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. */ const shouldShowSpaceSettings = (cli /*: MatrixClient*/ , space /*: Room*/ ) => { const userId = cli.getUserId(); return space.getMyMembership() === "join" && (space.currentState.maySendStateEvent(_event.EventType.RoomAvatar, userId) || space.currentState.maySendStateEvent(_event.EventType.RoomName, userId) || space.currentState.maySendStateEvent(_event.EventType.RoomTopic, userId) || space.currentState.maySendStateEvent(_event.EventType.RoomJoinRules, userId)); }; exports.shouldShowSpaceSettings = shouldShowSpaceSettings; const makeSpaceParentEvent = (room /*: Room*/ , canonical = false) => ({ type: _event.EventType.SpaceParent, content: { "via": (0, _Permalinks.calculateRoomVia)(room), "canonical": canonical }, state_key: room.roomId }); exports.makeSpaceParentEvent = makeSpaceParentEvent; const showSpaceSettings = (cli /*: MatrixClient*/ , space /*: Room*/ ) => { _Modal.default.createTrackedDialog("Space Settings", "", _SpaceSettingsDialog.default, { matrixClient: cli, space }, /*className=*/ null, /*isPriority=*/ false, /*isStatic=*/ true); }; exports.showSpaceSettings = showSpaceSettings; const showAddExistingRooms = async (cli /*: MatrixClient*/ , space /*: Room*/ ) => { return _Modal.default.createTrackedDialog("Space Landing", "Add Existing", _AddExistingToSpaceDialog.default, { matrixClient: cli, onCreateRoomClick: showCreateNewRoom, space }, "mx_AddExistingToSpaceDialog_wrapper").finished; }; exports.showAddExistingRooms = showAddExistingRooms; const showCreateNewRoom = async (cli /*: MatrixClient*/ , space /*: Room*/ ) => { const modal = _Modal.default.createTrackedDialog("Space Landing", "Create Room", _CreateRoomDialog.default, { defaultPublic: space.getJoinRule() === "public", parentSpace: space }); const [shouldCreate, opts] = await modal.finished; if (shouldCreate) { await (0, _createRoom.default)(opts); } return shouldCreate; }; exports.showCreateNewRoom = showCreateNewRoom; const showSpaceInvite = (space /*: Room*/ , initialText = "") => { if (space.getJoinRule() === "public") { const modal = _Modal.default.createTrackedDialog("Space Invite", "User Menu", _InfoDialog.default, { title: (0, _languageHandler._t)("Invite to %(spaceName)s", { spaceName: space.name }), description: /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("span", null, (0, _languageHandler._t)("Share your public space")), /*#__PURE__*/_react.default.createElement(_SpacePublicShare.default, { space: space, onFinished: () => modal.close() })), fixedWidth: false, button: false, className: "mx_SpacePanel_sharePublicSpace", hasCloseButton: true }); } else { (0, _RoomInvite.showRoomInviteDialog)(space.roomId, initialText); } }; exports.showSpaceInvite = showSpaceInvite; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9zcGFjZS50c3giXSwibmFtZXMiOlsic2hvdWxkU2hvd1NwYWNlU2V0dGluZ3MiLCJjbGkiLCJzcGFjZSIsInVzZXJJZCIsImdldFVzZXJJZCIsImdldE15TWVtYmVyc2hpcCIsImN1cnJlbnRTdGF0ZSIsIm1heVNlbmRTdGF0ZUV2ZW50IiwiRXZlbnRUeXBlIiwiUm9vbUF2YXRhciIsIlJvb21OYW1lIiwiUm9vbVRvcGljIiwiUm9vbUpvaW5SdWxlcyIsIm1ha2VTcGFjZVBhcmVudEV2ZW50Iiwicm9vbSIsImNhbm9uaWNhbCIsInR5cGUiLCJTcGFjZVBhcmVudCIsImNvbnRlbnQiLCJzdGF0ZV9rZXkiLCJyb29tSWQiLCJzaG93U3BhY2VTZXR0aW5ncyIsIk1vZGFsIiwiY3JlYXRlVHJhY2tlZERpYWxvZyIsIlNwYWNlU2V0dGluZ3NEaWFsb2ciLCJtYXRyaXhDbGllbnQiLCJzaG93QWRkRXhpc3RpbmdSb29tcyIsIkFkZEV4aXN0aW5nVG9TcGFjZURpYWxvZyIsIm9uQ3JlYXRlUm9vbUNsaWNrIiwic2hvd0NyZWF0ZU5ld1Jvb20iLCJmaW5pc2hlZCIsIm1vZGFsIiwiQ3JlYXRlUm9vbURpYWxvZyIsImRlZmF1bHRQdWJsaWMiLCJnZXRKb2luUnVsZSIsInBhcmVudFNwYWNlIiwic2hvdWxkQ3JlYXRlIiwib3B0cyIsInNob3dTcGFjZUludml0ZSIsImluaXRpYWxUZXh0IiwiSW5mb0RpYWxvZyIsInRpdGxlIiwic3BhY2VOYW1lIiwibmFtZSIsImRlc2NyaXB0aW9uIiwiY2xvc2UiLCJmaXhlZFdpZHRoIiwiYnV0dG9uIiwiY2xhc3NOYW1lIiwiaGFzQ2xvc2VCdXR0b24iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQWdCQTs7QUFHQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUE5QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNB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LE1BQUFBLEtBQUssRUFBRSx5QkFBRyx5QkFBSCxFQUE4QjtBQUFFQyxRQUFBQSxTQUFTLEVBQUV4QyxLQUFLLENBQUN5QztBQUFuQixPQUE5QixDQURzRTtBQUU3RUMsTUFBQUEsV0FBVyxlQUFFLDZCQUFDLGNBQUQsQ0FBTyxRQUFQLHFCQUNULDJDQUFRLHlCQUFHLHlCQUFILENBQVIsQ0FEUyxlQUVULDZCQUFDLHlCQUFEO0FBQWtCLFFBQUEsS0FBSyxFQUFFMUMsS0FBekI7QUFBZ0MsUUFBQSxVQUFVLEVBQUUsTUFBTTZCLEtBQUssQ0FBQ2MsS0FBTjtBQUFsRCxRQUZTLENBRmdFO0FBTTdFQyxNQUFBQSxVQUFVLEVBQUUsS0FOaUU7QUFPN0VDLE1BQUFBLE1BQU0sRUFBRSxLQVBxRTtBQVE3RUMsTUFBQUEsU0FBUyxFQUFFLGdDQVJrRTtBQVM3RUMsTUFBQUEsY0FBYyxFQUFFO0FBVDZELEtBQW5FLENBQWQ7QUFXSCxHQVpELE1BWU87QUFDSCwwQ0FBcUIvQyxLQUFLLENBQUNrQixNQUEzQixFQUFtQ21CLFdBQW5DO0FBQ0g7QUFDSixDQWhCTSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5MaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xueW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG5cbiAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcblxuVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG5TZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG5saW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiovXG5cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7Um9vbX0gZnJvbSBcIm1hdHJpeC1qcy1zZGsvc3JjL21vZGVscy9yb29tXCI7XG5pbXBvcnQge01hdHJpeENsaWVudH0gZnJvbSBcIm1hdHJpeC1qcy1zZGsvc3JjL2NsaWVudFwiO1xuaW1wb3J0IHtFdmVudFR5cGV9IGZyb20gXCJtYXRyaXgtanMtc2RrL3NyYy9AdHlwZXMvZXZlbnRcIjtcblxuaW1wb3J0IHtjYWxjdWxhdGVSb29tVmlhfSBmcm9tIFwiLi4vdXRpbHMvcGVybWFsaW5rcy9QZXJtYWxpbmtzXCI7XG5pbXBvcnQgTW9kYWwgZnJvbSBcIi4uL01vZGFsXCI7XG5pbXBvcnQgU3BhY2VTZXR0aW5nc0RpYWxvZyBmcm9tIFwiLi4vY29tcG9uZW50cy92aWV3cy9kaWFsb2dzL1NwYWNlU2V0dGluZ3NEaWFsb2dcIjtcbmltcG9ydCBBZGRFeGlzdGluZ1RvU3BhY2VEaWFsb2cgZnJvbSBcIi4uL2NvbXBvbmVudHMvdmlld3MvZGlhbG9ncy9BZGRFeGlzdGluZ1RvU3BhY2VEaWFsb2dcIjtcbmltcG9ydCBDcmVhdGVSb29tRGlhbG9nIGZyb20gXCIuLi9jb21wb25lbnRzL3ZpZXdzL2RpYWxvZ3MvQ3JlYXRlUm9vbURpYWxvZ1wiO1xuaW1wb3J0IGNyZWF0ZVJvb20sIHtJT3B0c30gZnJvbSBcIi4uL2NyZWF0ZVJvb21cIjtcbmltcG9ydCB7X3R9IGZyb20gXCIuLi9sYW5ndWFnZUhhbmRsZXJcIjtcbmltcG9ydCBTcGFjZVB1YmxpY1NoYXJlIGZyb20gXCIuLi9jb21wb25lbnRzL3ZpZXdzL3NwYWNlcy9TcGFjZVB1YmxpY1NoYXJlXCI7XG5pbXBvcnQgSW5mb0RpYWxvZyBmcm9tIFwiLi4vY29tcG9uZW50cy92aWV3cy9kaWFsb2dzL0luZm9EaWFsb2dcIjtcbmltcG9ydCB7IHNob3dSb29tSW52aXRlRGlhbG9nIH0gZnJvbSBcIi4uL1Jvb21JbnZpdGVcIjtcblxuZXhwb3J0IGNvbnN0IHNob3VsZFNob3dTcGFjZVNldHRpbmdzID0gKGNsaTogTWF0cml4Q2xpZW50LCBzcGFjZTogUm9vbSkgPT4ge1xuICAgIGNvbnN0IHVzZXJJZCA9IGNsaS5nZXRVc2VySWQoKTtcbiAgICByZXR1cm4gc3BhY2UuZ2V0TXlNZW1iZXJzaGlwKCkgPT09IFwiam9pblwiXG4gICAgICAgICYmIChzcGFjZS5jdXJyZW50U3RhdGUubWF5U2VuZFN0YXRlRXZlbnQoRXZlbnRUeXBlLlJvb21BdmF0YXIsIHVzZXJJZClcbiAgICAgICAgICAgIHx8IHNwYWNlLmN1cnJlbnRTdGF0ZS5tYXlTZW5kU3RhdGVFdmVudChFdmVudFR5cGUuUm9vbU5hbWUsIHVzZXJJZClcbiAgICAgICAgICAgIHx8IHNwYWNlLmN1cnJlbnRTdGF0ZS5tYXlTZW5kU3RhdGVFdmVudChFdmVudFR5cGUuUm9vbVRvcGljLCB1c2VySWQpXG4gICAgICAgICAgICB8fCBzcGFjZS5jdXJyZW50U3RhdGUubWF5U2VuZFN0YXRlRXZlbnQoRXZlbnRUeXBlLlJvb21Kb2luUnVsZXMsIHVzZXJJZCkpO1xufTtcblxuZXhwb3J0IGNvbnN0IG1ha2VTcGFjZVBhcmVudEV2ZW50ID0gKHJvb206IFJvb20sIGNhbm9uaWNhbCA9IGZhbHNlKSA9PiAoe1xuICAgIHR5cGU6IEV2ZW50VHlwZS5TcGFjZVBhcmVudCxcbiAgICBjb250ZW50OiB7XG4gICAgICAgIFwidmlhXCI6IGNhbGN1bGF0ZVJvb21WaWEocm9vbSksXG4gICAgICAgIFwiY2Fub25pY2FsXCI6IGNhbm9uaWNhbCxcbiAgICB9LFxuICAgIHN0YXRlX2tleTogcm9vbS5yb29tSWQsXG59KTtcblxuZXhwb3J0IGNvbnN0IHNob3dTcGFjZVNldHRpbmdzID0gKGNsaTogTWF0cml4Q2xpZW50LCBzcGFjZTogUm9vbSkgPT4ge1xuICAgIE1vZGFsLmNyZWF0ZVRyYWNrZWREaWFsb2coXCJTcGFjZSBTZXR0aW5nc1wiLCBcIlwiLCBTcGFjZVNldHRpbmdzRGlhbG9nLCB7XG4gICAgICAgIG1hdHJpeENsaWVudDogY2xpLFxuICAgICAgICBzcGFjZSxcbiAgICB9LCAvKmNsYXNzTmFtZT0qL251bGwsIC8qaXNQcmlvcml0eT0qL2ZhbHNlLCAvKmlzU3RhdGljPSovdHJ1ZSk7XG59O1xuXG5leHBvcnQgY29uc3Qgc2hvd0FkZEV4aXN0aW5nUm9vbXMgPSBhc3luYyAoY2xpOiBNYXRyaXhDbGllbnQsIHNwYWNlOiBSb29tKSA9PiB7XG4gICAgcmV0dXJuIE1vZGFsLmNyZWF0ZVRyYWNrZWREaWFsb2coXG4gICAgICAgIFwiU3BhY2UgTGFuZGluZ1wiLFxuICAgICAgICBcIkFkZCBFeGlzdGluZ1wiLFxuICAgICAgICBBZGRFeGlzdGluZ1RvU3BhY2VEaWFsb2csXG4gICAgICAgIHtcbiAgICAgICAgICAgIG1hdHJpeENsaWVudDogY2xpLFxuICAgICAgICAgICAgb25DcmVhdGVSb29tQ2xpY2s6IHNob3dDcmVhdGVOZXdSb29tLFxuICAgICAgICAgICAgc3BhY2UsXG4gICAgICAgIH0sXG4gICAgICAgIFwibXhfQWRkRXhpc3RpbmdUb1NwYWNlRGlhbG9nX3dyYXBwZXJcIixcbiAgICApLmZpbmlzaGVkO1xufTtcblxuZXhwb3J0IGNvbnN0IHNob3dDcmVhdGVOZXdSb29tID0gYXN5bmMgKGNsaTogTWF0cml4Q2xpZW50LCBzcGFjZTogUm9vbSkgPT4ge1xuICAgIGNvbnN0IG1vZGFsID0gTW9kYWwuY3JlYXRlVHJhY2tlZERpYWxvZzxbYm9vbGVhbiwgSU9wdHNdPihcbiAgICAgICAgXCJTcGFjZSBMYW5kaW5nXCIsXG4gICAgICAgIFwiQ3JlYXRlIFJvb21cIixcbiAgICAgICAgQ3JlYXRlUm9vbURpYWxvZyxcbiAgICAgICAge1xuICAgICAgICAgICAgZGVmYXVsdFB1YmxpYzogc3BhY2UuZ2V0Sm9pblJ1bGUoKSA9PT0gXCJwdWJsaWNcIixcbiAgICAgICAgICAgIHBhcmVudFNwYWNlOiBzcGFjZSxcbiAgICAgICAgfSxcbiAgICApO1xuICAgIGNvbnN0IFtzaG91bGRDcmVhdGUsIG9wdHNdID0gYXdhaXQgbW9kYWwuZmluaXNoZWQ7XG4gICAgaWYgKHNob3VsZENyZWF0ZSkge1xuICAgICAgICBhd2FpdCBjcmVhdGVSb29tKG9wdHMpO1xuICAgIH1cbiAgICByZXR1cm4gc2hvdWxkQ3JlYXRlO1xufTtcblxuZXhwb3J0IGNvbnN0IHNob3dTcGFjZUludml0ZSA9IChzcGFjZTogUm9vbSwgaW5pdGlhbFRleHQgPSBcIlwiKSA9PiB7XG4gICAgaWYgKHNwYWNlLmdldEpvaW5SdWxlKCkgPT09IFwicHVibGljXCIpIHtcbiAgICAgICAgY29uc3QgbW9kYWwgPSBNb2RhbC5jcmVhdGVUcmFja2VkRGlhbG9nKFwiU3BhY2UgSW52aXRlXCIsIFwiVXNlciBNZW51XCIsIEluZm9EaWFsb2csIHtcbiAgICAgICAgICAgIHRpdGxlOiBfdChcIkludml0ZSB0byAlKHNwYWNlTmFtZSlzXCIsIHsgc3BhY2VOYW1lOiBzcGFjZS5uYW1lIH0pLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IDxSZWFjdC5GcmFnbWVudD5cbiAgICAgICAgICAgICAgICA8c3Bhbj57IF90KFwiU2hhcmUgeW91ciBwdWJsaWMgc3BhY2VcIikgfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8U3BhY2VQdWJsaWNTaGFyZSBzcGFjZT17c3BhY2V9IG9uRmluaXNoZWQ9eygpID0+IG1vZGFsLmNsb3NlKCl9IC8+XG4gICAgICAgICAgICA8L1JlYWN0LkZyYWdtZW50PixcbiAgICAgICAgICAgIGZpeGVkV2lkdGg6IGZhbHNlLFxuICAgICAgICAgICAgYnV0dG9uOiBmYWxzZSxcbiAgICAgICAgICAgIGNsYXNzTmFtZTogXCJteF9TcGFjZVBhbmVsX3NoYXJlUHVibGljU3BhY2VcIixcbiAgICAgICAgICAgIGhhc0Nsb3NlQnV0dG9uOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBzaG93Um9vbUludml0ZURpYWxvZyhzcGFjZS5yb29tSWQsIGluaXRpYWxUZXh0KTtcbiAgICB9XG59O1xuIl19