UNPKG

matrix-react-sdk

Version:
63 lines (60 loc) 10.1 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 _PollEndEvent = require("matrix-js-sdk/src/extensible_events_v1/PollEndEvent"); var _languageHandler = require("../../../languageHandler"); var _QuestionDialog = _interopRequireDefault(require("./QuestionDialog")); var _MPollBody = require("../messages/MPollBody"); var _Modal = _interopRequireDefault(require("../../../Modal")); var _ErrorDialog = _interopRequireDefault(require("./ErrorDialog")); /* Copyright 2024 New Vector Ltd. Copyright 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 EndPollDialog extends _react.default.Component { constructor(...args) { super(...args); (0, _defineProperty2.default)(this, "onFinished", async endPoll => { if (endPoll) { const room = this.props.matrixClient.getRoom(this.props.event.getRoomId()); const poll = room?.polls.get(this.props.event.getId()); if (!poll) { throw new Error("No poll instance found in room."); } try { const responses = await poll.getResponses(); const topAnswer = (0, _MPollBody.findTopAnswer)(this.props.event, responses); const message = topAnswer === "" ? (0, _languageHandler._t)("poll|end_message_no_votes") : (0, _languageHandler._t)("poll|end_message", { topAnswer }); const endEvent = _PollEndEvent.PollEndEvent.from(this.props.event.getId(), message).serialize(); await this.props.matrixClient.sendEvent(this.props.event.getRoomId(), endEvent.type, endEvent.content); } catch (e) { console.error("Failed to submit poll response event:", e); _Modal.default.createDialog(_ErrorDialog.default, { title: (0, _languageHandler._t)("poll|error_ending_title"), description: (0, _languageHandler._t)("poll|error_ending_description") }); } } this.props.onFinished(endPoll); }); } render() { return /*#__PURE__*/_react.default.createElement(_QuestionDialog.default, { title: (0, _languageHandler._t)("poll|end_title"), description: (0, _languageHandler._t)("poll|end_description"), button: (0, _languageHandler._t)("poll|end_title"), onFinished: endPoll => this.onFinished(endPoll) }); } } exports.default = EndPollDialog; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9Qb2xsRW5kRXZlbnQiLCJfbGFuZ3VhZ2VIYW5kbGVyIiwiX1F1ZXN0aW9uRGlhbG9nIiwiX01Qb2xsQm9keSIsIl9Nb2RhbCIsIl9FcnJvckRpYWxvZyIsIkVuZFBvbGxEaWFsb2ciLCJSZWFjdCIsIkNvbXBvbmVudCIsImNvbnN0cnVjdG9yIiwiYXJncyIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJkZWZhdWx0IiwiZW5kUG9sbCIsInJvb20iLCJwcm9wcyIsIm1hdHJpeENsaWVudCIsImdldFJvb20iLCJldmVudCIsImdldFJvb21JZCIsInBvbGwiLCJwb2xscyIsImdldCIsImdldElkIiwiRXJyb3IiLCJyZXNwb25zZXMiLCJnZXRSZXNwb25zZXMiLCJ0b3BBbnN3ZXIiLCJmaW5kVG9wQW5zd2VyIiwibWVzc2FnZSIsIl90IiwiZW5kRXZlbnQiLCJQb2xsRW5kRXZlbnQiLCJmcm9tIiwic2VyaWFsaXplIiwic2VuZEV2ZW50IiwidHlwZSIsImNvbnRlbnQiLCJlIiwiY29uc29sZSIsImVycm9yIiwiTW9kYWwiLCJjcmVhdGVEaWFsb2ciLCJFcnJvckRpYWxvZyIsInRpdGxlIiwiZGVzY3JpcHRpb24iLCJvbkZpbmlzaGVkIiwicmVuZGVyIiwiY3JlYXRlRWxlbWVudCIsImJ1dHRvbiIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy92aWV3cy9kaWFsb2dzL0VuZFBvbGxEaWFsb2cudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seVxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IE1hdHJpeEV2ZW50LCBNYXRyaXhDbGllbnQsIFRpbWVsaW5lRXZlbnRzIH0gZnJvbSBcIm1hdHJpeC1qcy1zZGsvc3JjL21hdHJpeFwiO1xuaW1wb3J0IHsgUG9sbEVuZEV2ZW50IH0gZnJvbSBcIm1hdHJpeC1qcy1zZGsvc3JjL2V4dGVuc2libGVfZXZlbnRzX3YxL1BvbGxFbmRFdmVudFwiO1xuXG5pbXBvcnQgeyBfdCB9IGZyb20gXCIuLi8uLi8uLi9sYW5ndWFnZUhhbmRsZXJcIjtcbmltcG9ydCBRdWVzdGlvbkRpYWxvZyBmcm9tIFwiLi9RdWVzdGlvbkRpYWxvZ1wiO1xuaW1wb3J0IHsgZmluZFRvcEFuc3dlciB9IGZyb20gXCIuLi9tZXNzYWdlcy9NUG9sbEJvZHlcIjtcbmltcG9ydCBNb2RhbCBmcm9tIFwiLi4vLi4vLi4vTW9kYWxcIjtcbmltcG9ydCBFcnJvckRpYWxvZyBmcm9tIFwiLi9FcnJvckRpYWxvZ1wiO1xuaW1wb3J0IHsgR2V0UmVsYXRpb25zRm9yRXZlbnQgfSBmcm9tIFwiLi4vcm9vbXMvRXZlbnRUaWxlXCI7XG5cbmludGVyZmFjZSBJUHJvcHMge1xuICAgIG1hdHJpeENsaWVudDogTWF0cml4Q2xpZW50O1xuICAgIGV2ZW50OiBNYXRyaXhFdmVudDtcbiAgICBvbkZpbmlzaGVkOiAoc3VjY2Vzcz86IGJvb2xlYW4pID0+IHZvaWQ7XG4gICAgZ2V0UmVsYXRpb25zRm9yRXZlbnQ/OiBHZXRSZWxhdGlvbnNGb3JFdmVudDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRW5kUG9sbERpYWxvZyBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxJUHJvcHM+IHtcbiAgICBwcml2YXRlIG9uRmluaXNoZWQgPSBhc3luYyAoZW5kUG9sbDogYm9vbGVhbik6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgICBpZiAoZW5kUG9sbCkge1xuICAgICAgICAgICAgY29uc3Qgcm9vbSA9IHRoaXMucHJvcHMubWF0cml4Q2xpZW50LmdldFJvb20odGhpcy5wcm9wcy5ldmVudC5nZXRSb29tSWQoKSk7XG4gICAgICAgICAgICBjb25zdCBwb2xsID0gcm9vbT8ucG9sbHMuZ2V0KHRoaXMucHJvcHMuZXZlbnQuZ2V0SWQoKSEpO1xuXG4gICAgICAgICAgICBpZiAoIXBvbGwpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJObyBwb2xsIGluc3RhbmNlIGZvdW5kIGluIHJvb20uXCIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlcyA9IGF3YWl0IHBvbGwuZ2V0UmVzcG9uc2VzKCk7XG4gICAgICAgICAgICAgICAgY29uc3QgdG9wQW5zd2VyID0gZmluZFRvcEFuc3dlcih0aGlzLnByb3BzLmV2ZW50LCByZXNwb25zZXMpO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgbWVzc2FnZSA9XG4gICAgICAgICAgICAgICAgICAgIHRvcEFuc3dlciA9PT0gXCJcIiA/IF90KFwicG9sbHxlbmRfbWVzc2FnZV9ub192b3Rlc1wiKSA6IF90KFwicG9sbHxlbmRfbWVzc2FnZVwiLCB7IHRvcEFuc3dlciB9KTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IGVuZEV2ZW50ID0gUG9sbEVuZEV2ZW50LmZyb20odGhpcy5wcm9wcy5ldmVudC5nZXRJZCgpISwgbWVzc2FnZSkuc2VyaWFsaXplKCk7XG5cbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLnByb3BzLm1hdHJpeENsaWVudC5zZW5kRXZlbnQoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHMuZXZlbnQuZ2V0Um9vbUlkKCkhLFxuICAgICAgICAgICAgICAgICAgICBlbmRFdmVudC50eXBlIGFzIGtleW9mIFRpbWVsaW5lRXZlbnRzLFxuICAgICAgICAgICAgICAgICAgICBlbmRFdmVudC5jb250ZW50IGFzIFRpbWVsaW5lRXZlbnRzW2tleW9mIFRpbWVsaW5lRXZlbnRzXSxcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJGYWlsZWQgdG8gc3VibWl0IHBvbGwgcmVzcG9uc2UgZXZlbnQ6XCIsIGUpO1xuICAgICAgICAgICAgICAgIE1vZGFsLmNyZWF0ZURpYWxvZyhFcnJvckRpYWxvZywge1xuICAgICAgICAgICAgICAgICAgICB0aXRsZTogX3QoXCJwb2xsfGVycm9yX2VuZGluZ190aXRsZVwiKSxcbiAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IF90KFwicG9sbHxlcnJvcl9lbmRpbmdfZGVzY3JpcHRpb25cIiksXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5wcm9wcy5vbkZpbmlzaGVkKGVuZFBvbGwpO1xuICAgIH07XG5cbiAgICBwdWJsaWMgcmVuZGVyKCk6IFJlYWN0LlJlYWN0Tm9kZSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8UXVlc3Rpb25EaWFsb2dcbiAgICAgICAgICAgICAgICB0aXRsZT17X3QoXCJwb2xsfGVuZF90aXRsZVwiKX1cbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbj17X3QoXCJwb2xsfGVuZF9kZXNjcmlwdGlvblwiKX1cbiAgICAgICAgICAgICAgICBidXR0b249e190KFwicG9sbHxlbmRfdGl0bGVcIil9XG4gICAgICAgICAgICAgICAgb25GaW5pc2hlZD17KGVuZFBvbGw6IGJvb2xlYW4pID0+IHRoaXMub25GaW5pc2hlZChlbmRQb2xsKX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICk7XG4gICAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQVFBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFDLGFBQUEsR0FBQUQsT0FBQTtBQUVB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