UNPKG

matrix-react-sdk

Version:
101 lines (98 loc) 15.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 _languageHandler = require("../../../languageHandler"); var _objects = require("../../../utils/objects"); var _StyledCheckbox = _interopRequireDefault(require("../elements/StyledCheckbox")); var _AccessibleButton = _interopRequireDefault(require("../elements/AccessibleButton")); /* Copyright 2024 New Vector Ltd. Copyright 2019 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 InlineTermsAgreement extends _react.default.Component { constructor(props) { super(props); (0, _defineProperty2.default)(this, "togglePolicy", index => { const policies = (0, _objects.objectClone)(this.state.policies); policies[index].checked = !policies[index].checked; this.setState({ policies }); }); (0, _defineProperty2.default)(this, "onContinue", () => { const hasUnchecked = !!this.state.policies.some(p => !p.checked); if (hasUnchecked) return; this.setState({ busy: true }); this.props.onFinished(this.state.policies.map(p => p.url)); }); this.state = { policies: [], busy: false }; } componentDidMount() { // Build all the terms the user needs to accept const policies = []; for (const servicePolicies of this.props.policiesAndServicePairs) { const availablePolicies = Object.values(servicePolicies.policies); for (const policy of availablePolicies) { const language = (0, _languageHandler.pickBestLanguage)(Object.keys(policy).filter(p => p !== "version")); const renderablePolicy = { checked: false, url: policy[language].url, name: policy[language].name }; policies.push(renderablePolicy); } } this.setState({ policies }); } renderCheckboxes() { const rendered = []; for (let i = 0; i < this.state.policies.length; i++) { const policy = this.state.policies[i]; const introText = (0, _languageHandler._t)("terms|inline_intro_text", {}, { policyLink: () => { return /*#__PURE__*/_react.default.createElement("a", { href: policy.url, rel: "noreferrer noopener", target: "_blank" }, policy.name, /*#__PURE__*/_react.default.createElement("span", { className: "mx_InlineTermsAgreement_link" })); } }); rendered.push( /*#__PURE__*/_react.default.createElement("div", { key: i, className: "mx_InlineTermsAgreement_cbContainer" }, /*#__PURE__*/_react.default.createElement("div", null, introText), /*#__PURE__*/_react.default.createElement("div", { className: "mx_InlineTermsAgreement_checkbox" }, /*#__PURE__*/_react.default.createElement(_StyledCheckbox.default, { onChange: () => this.togglePolicy(i), checked: policy.checked }, (0, _languageHandler._t)("action|accept"))))); } return rendered; } render() { const hasUnchecked = !!this.state.policies.some(p => !p.checked); return /*#__PURE__*/_react.default.createElement("div", null, this.props.introElement, this.renderCheckboxes(), /*#__PURE__*/_react.default.createElement(_AccessibleButton.default, { onClick: this.onContinue, disabled: hasUnchecked || this.state.busy, kind: "primary_sm" }, (0, _languageHandler._t)("action|continue"))); } } exports.default = InlineTermsAgreement; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9sYW5ndWFnZUhhbmRsZXIiLCJfb2JqZWN0cyIsIl9TdHlsZWRDaGVja2JveCIsIl9BY2Nlc3NpYmxlQnV0dG9uIiwiSW5saW5lVGVybXNBZ3JlZW1lbnQiLCJSZWFjdCIsIkNvbXBvbmVudCIsImNvbnN0cnVjdG9yIiwicHJvcHMiLCJfZGVmaW5lUHJvcGVydHkyIiwiZGVmYXVsdCIsImluZGV4IiwicG9saWNpZXMiLCJvYmplY3RDbG9uZSIsInN0YXRlIiwiY2hlY2tlZCIsInNldFN0YXRlIiwiaGFzVW5jaGVja2VkIiwic29tZSIsInAiLCJidXN5Iiwib25GaW5pc2hlZCIsIm1hcCIsInVybCIsImNvbXBvbmVudERpZE1vdW50Iiwic2VydmljZVBvbGljaWVzIiwicG9saWNpZXNBbmRTZXJ2aWNlUGFpcnMiLCJhdmFpbGFibGVQb2xpY2llcyIsIk9iamVjdCIsInZhbHVlcyIsInBvbGljeSIsImxhbmd1YWdlIiwicGlja0Jlc3RMYW5ndWFnZSIsImtleXMiLCJmaWx0ZXIiLCJyZW5kZXJhYmxlUG9saWN5IiwibmFtZSIsInB1c2giLCJyZW5kZXJDaGVja2JveGVzIiwicmVuZGVyZWQiLCJpIiwibGVuZ3RoIiwiaW50cm9UZXh0IiwiX3QiLCJwb2xpY3lMaW5rIiwiY3JlYXRlRWxlbWVudCIsImhyZWYiLCJyZWwiLCJ0YXJnZXQiLCJjbGFzc05hbWUiLCJrZXkiLCJvbkNoYW5nZSIsInRvZ2dsZVBvbGljeSIsInJlbmRlciIsImludHJvRWxlbWVudCIsIm9uQ2xpY2siLCJvbkNvbnRpbnVlIiwiZGlzYWJsZWQiLCJraW5kIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3ZpZXdzL3Rlcm1zL0lubGluZVRlcm1zQWdyZWVtZW50LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxOSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHlcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5cbmltcG9ydCB7IF90LCBwaWNrQmVzdExhbmd1YWdlIH0gZnJvbSBcIi4uLy4uLy4uL2xhbmd1YWdlSGFuZGxlclwiO1xuaW1wb3J0IHsgb2JqZWN0Q2xvbmUgfSBmcm9tIFwiLi4vLi4vLi4vdXRpbHMvb2JqZWN0c1wiO1xuaW1wb3J0IFN0eWxlZENoZWNrYm94IGZyb20gXCIuLi9lbGVtZW50cy9TdHlsZWRDaGVja2JveFwiO1xuaW1wb3J0IEFjY2Vzc2libGVCdXR0b24gZnJvbSBcIi4uL2VsZW1lbnRzL0FjY2Vzc2libGVCdXR0b25cIjtcbmltcG9ydCB7IFNlcnZpY2VQb2xpY3lQYWlyIH0gZnJvbSBcIi4uLy4uLy4uL1Rlcm1zXCI7XG5cbmludGVyZmFjZSBJUHJvcHMge1xuICAgIHBvbGljaWVzQW5kU2VydmljZVBhaXJzOiBTZXJ2aWNlUG9saWN5UGFpcltdO1xuICAgIG9uRmluaXNoZWQ6IChhY2NlcHRlZDogc3RyaW5nW10pID0+IHZvaWQ7XG4gICAgYWdyZWVkVXJsczogc3RyaW5nW107IC8vIGFycmF5IG9mIFVSTHMgdGhlIHVzZXIgaGFzIGFjY2VwdGVkXG4gICAgaW50cm9FbGVtZW50OiBSZWFjdC5SZWFjdE5vZGU7XG59XG5cbmludGVyZmFjZSBJU3RhdGUge1xuICAgIHBvbGljaWVzOiBQb2xpY3lbXTtcbiAgICBidXN5OiBib29sZWFuO1xufVxuXG5pbnRlcmZhY2UgUG9saWN5IHtcbiAgICBjaGVja2VkOiBib29sZWFuO1xuICAgIHVybDogc3RyaW5nO1xuICAgIG5hbWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgSW5saW5lVGVybXNBZ3JlZW1lbnQgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQ8SVByb3BzLCBJU3RhdGU+IHtcbiAgICBwdWJsaWMgY29uc3RydWN0b3IocHJvcHM6IElQcm9wcykge1xuICAgICAgICBzdXBlcihwcm9wcyk7XG4gICAgICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICAgICAgICBwb2xpY2llczogW10sXG4gICAgICAgICAgICBidXN5OiBmYWxzZSxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY29tcG9uZW50RGlkTW91bnQoKTogdm9pZCB7XG4gICAgICAgIC8vIEJ1aWxkIGFsbCB0aGUgdGVybXMgdGhlIHVzZXIgbmVlZHMgdG8gYWNjZXB0XG4gICAgICAgIGNvbnN0IHBvbGljaWVzOiBQb2xpY3lbXSA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IHNlcnZpY2VQb2xpY2llcyBvZiB0aGlzLnByb3BzLnBvbGljaWVzQW5kU2VydmljZVBhaXJzKSB7XG4gICAgICAgICAgICBjb25zdCBhdmFpbGFibGVQb2xpY2llcyA9IE9iamVjdC52YWx1ZXMoc2VydmljZVBvbGljaWVzLnBvbGljaWVzKTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgcG9saWN5IG9mIGF2YWlsYWJsZVBvbGljaWVzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbGFuZ3VhZ2UgPSBwaWNrQmVzdExhbmd1YWdlKE9iamVjdC5rZXlzKHBvbGljeSkuZmlsdGVyKChwKSA9PiBwICE9PSBcInZlcnNpb25cIikpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlbmRlcmFibGVQb2xpY3k6IFBvbGljeSA9IHtcbiAgICAgICAgICAgICAgICAgICAgY2hlY2tlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIHVybDogcG9saWN5W2xhbmd1YWdlXS51cmwsXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IHBvbGljeVtsYW5ndWFnZV0ubmFtZSxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIHBvbGljaWVzLnB1c2gocmVuZGVyYWJsZVBvbGljeSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNldFN0YXRlKHsgcG9saWNpZXMgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB0b2dnbGVQb2xpY3kgPSAoaW5kZXg6IG51bWJlcik6IHZvaWQgPT4ge1xuICAgICAgICBjb25zdCBwb2xpY2llcyA9IG9iamVjdENsb25lKHRoaXMuc3RhdGUucG9saWNpZXMpO1xuICAgICAgICBwb2xpY2llc1tpbmRleF0uY2hlY2tlZCA9ICFwb2xpY2llc1tpbmRleF0uY2hlY2tlZDtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IHBvbGljaWVzIH0pO1xuICAgIH07XG5cbiAgICBwcml2YXRlIG9uQ29udGludWUgPSAoKTogdm9pZCA9PiB7XG4gICAgICAgIGNvbnN0IGhhc1VuY2hlY2tlZCA9ICEhdGhpcy5zdGF0ZS5wb2xpY2llcy5zb21lKChwKSA9PiAhcC5jaGVja2VkKTtcbiAgICAgICAgaWYgKGhhc1VuY2hlY2tlZCkgcmV0dXJuO1xuXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBidXN5OiB0cnVlIH0pO1xuICAgICAgICB0aGlzLnByb3BzLm9uRmluaXNoZWQodGhpcy5zdGF0ZS5wb2xpY2llcy5tYXAoKHApID0+IHAudXJsKSk7XG4gICAgfTtcblxuICAgIHByaXZhdGUgcmVuZGVyQ2hlY2tib3hlcygpOiBSZWFjdC5SZWFjdE5vZGVbXSB7XG4gICAgICAgIGNvbnN0IHJlbmRlcmVkOiBKU1guRWxlbWVudFtdID0gW107XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5zdGF0ZS5wb2xpY2llcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgcG9saWN5ID0gdGhpcy5zdGF0ZS5wb2xpY2llc1tpXTtcbiAgICAgICAgICAgIGNvbnN0IGludHJvVGV4dCA9IF90KFxuICAgICAgICAgICAgICAgIFwidGVybXN8aW5saW5lX2ludHJvX3RleHRcIixcbiAgICAgICAgICAgICAgICB7fSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHBvbGljeUxpbms6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj17cG9saWN5LnVybH0gcmVsPVwibm9yZWZlcnJlciBub29wZW5lclwiIHRhcmdldD1cIl9ibGFua1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cG9saWN5Lm5hbWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIm14X0lubGluZVRlcm1zQWdyZWVtZW50X2xpbmtcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICByZW5kZXJlZC5wdXNoKFxuICAgICAgICAgICAgICAgIDxkaXYga2V5PXtpfSBjbGFzc05hbWU9XCJteF9JbmxpbmVUZXJtc0FncmVlbWVudF9jYkNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2PntpbnRyb1RleHR9PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibXhfSW5saW5lVGVybXNBZ3JlZW1lbnRfY2hlY2tib3hcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxTdHlsZWRDaGVja2JveCBvbkNoYW5nZT17KCkgPT4gdGhpcy50b2dnbGVQb2xpY3koaSl9IGNoZWNrZWQ9e3BvbGljeS5jaGVja2VkfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7X3QoXCJhY3Rpb258YWNjZXB0XCIpfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRDaGVja2JveD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+LFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVuZGVyZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIHJlbmRlcigpOiBSZWFjdC5SZWFjdE5vZGUge1xuICAgICAgICBjb25zdCBoYXNVbmNoZWNrZWQgPSAhIXRoaXMuc3RhdGUucG9saWNpZXMuc29tZSgocCkgPT4gIXAuY2hlY2tlZCk7XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAge3RoaXMucHJvcHMuaW50cm9FbGVtZW50fVxuICAgICAgICAgICAgICAgIHt0aGlzLnJlbmRlckNoZWNrYm94ZXMoKX1cbiAgICAgICAgICAgICAgICA8QWNjZXNzaWJsZUJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXt0aGlzLm9uQ29udGludWV9XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtoYXNVbmNoZWNrZWQgfHwgdGhpcy5zdGF0ZS5idXN5fVxuICAgICAgICAgICAgICAgICAgICBraW5kPVwicHJpbWFyeV9zbVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7X3QoXCJhY3Rpb258Y29udGludWVcIil9XG4gICAgICAgICAgICAgICAgPC9BY2Nlc3NpYmxlQnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICk7XG4gICAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQVFBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFDLGdCQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxRQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxlQUFBLEdBQUFKLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSSxpQkFBQSxHQUFBTCxzQkFBQSxDQUFB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