UNPKG

matrix-react-sdk

Version:
102 lines (99 loc) 14.6 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _react = _interopRequireDefault(require("react")); var _languageHandler = require("../../../languageHandler"); var _QuestionDialog = _interopRequireDefault(require("./QuestionDialog")); var _Spinner = _interopRequireDefault(require("../elements/Spinner")); var _Heading = _interopRequireDefault(require("../typography/Heading")); /* Copyright 2024 New Vector Ltd. Copyright 2019 Michael Telatynski <7t3chguy@gmail.com> Copyright 2016 Aviral Dasgupta SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only Please see LICENSE files in the repository root for full details. */ const REPOS = ["element-hq/element-web", "element-hq/matrix-react-sdk", "matrix-org/matrix-js-sdk"]; class ChangelogDialog extends _react.default.Component { constructor(props) { super(props); this.state = {}; } async fetchChanges(repo, oldVersion, newVersion) { const url = `https://riot.im/github/repos/${repo}/compare/${oldVersion}...${newVersion}`; try { const res = await fetch(url); if (!res.ok) { this.setState({ [repo]: res.statusText }); return; } const body = await res.json(); this.setState({ [repo]: body.commits }); } catch (err) { this.setState({ [repo]: err instanceof Error ? err.message : (0, _languageHandler._t)("error|unknown") }); } } componentDidMount() { const version = this.props.newVersion.split("-"); const version2 = this.props.version.split("-"); if (version == null || version2 == null) return; // parse versions of form: [vectorversion]-react-[react-sdk-version]-js-[js-sdk-version] for (let i = 0; i < REPOS.length; i++) { const oldVersion = version2[2 * i]; const newVersion = version[2 * i]; this.fetchChanges(REPOS[i], oldVersion, newVersion); } } elementsForCommit(commit) { return /*#__PURE__*/_react.default.createElement("li", { key: commit.sha, className: "mx_ChangelogDialog_li" }, /*#__PURE__*/_react.default.createElement("a", { href: commit.html_url, target: "_blank", rel: "noreferrer noopener" }, commit.commit.message.split("\n")[0])); } render() { const logs = REPOS.map(repo => { let content; if (this.state[repo] == null) { content = /*#__PURE__*/_react.default.createElement(_Spinner.default, { key: repo }); } else if (typeof this.state[repo] === "string") { content = (0, _languageHandler._t)("update|error_unable_load_commit", { msg: this.state[repo] }); } else { content = this.state[repo].map(this.elementsForCommit); } return /*#__PURE__*/_react.default.createElement("div", { key: repo }, /*#__PURE__*/_react.default.createElement(_Heading.default, { as: "h2", size: "4" }, repo), /*#__PURE__*/_react.default.createElement("ul", null, content)); }); const content = /*#__PURE__*/_react.default.createElement("div", { className: "mx_ChangelogDialog_content" }, this.props.version == null || this.props.newVersion == null ? /*#__PURE__*/_react.default.createElement("h2", null, (0, _languageHandler._t)("update|unavailable")) : logs); return /*#__PURE__*/_react.default.createElement(_QuestionDialog.default, { title: (0, _languageHandler._t)("update|changelog"), description: content, button: (0, _languageHandler._t)("action|update"), onFinished: this.props.onFinished }); } } exports.default = ChangelogDialog; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9sYW5ndWFnZUhhbmRsZXIiLCJfUXVlc3Rpb25EaWFsb2ciLCJfU3Bpbm5lciIsIl9IZWFkaW5nIiwiUkVQT1MiLCJDaGFuZ2Vsb2dEaWFsb2ciLCJSZWFjdCIsIkNvbXBvbmVudCIsImNvbnN0cnVjdG9yIiwicHJvcHMiLCJzdGF0ZSIsImZldGNoQ2hhbmdlcyIsInJlcG8iLCJvbGRWZXJzaW9uIiwibmV3VmVyc2lvbiIsInVybCIsInJlcyIsImZldGNoIiwib2siLCJzZXRTdGF0ZSIsInN0YXR1c1RleHQiLCJib2R5IiwianNvbiIsImNvbW1pdHMiLCJlcnIiLCJFcnJvciIsIm1lc3NhZ2UiLCJfdCIsImNvbXBvbmVudERpZE1vdW50IiwidmVyc2lvbiIsInNwbGl0IiwidmVyc2lvbjIiLCJpIiwibGVuZ3RoIiwiZWxlbWVudHNGb3JDb21taXQiLCJjb21taXQiLCJkZWZhdWx0IiwiY3JlYXRlRWxlbWVudCIsImtleSIsInNoYSIsImNsYXNzTmFtZSIsImhyZWYiLCJodG1sX3VybCIsInRhcmdldCIsInJlbCIsInJlbmRlciIsImxvZ3MiLCJtYXAiLCJjb250ZW50IiwibXNnIiwiYXMiLCJzaXplIiwidGl0bGUiLCJkZXNjcmlwdGlvbiIsImJ1dHRvbiIsIm9uRmluaXNoZWQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvdmlld3MvZGlhbG9ncy9DaGFuZ2Vsb2dEaWFsb2cudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE5IE1pY2hhZWwgVGVsYXR5bnNraSA8N3QzY2hndXlAZ21haWwuY29tPlxuQ29weXJpZ2h0IDIwMTYgQXZpcmFsIERhc2d1cHRhXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seVxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiAqL1xuXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5cbmltcG9ydCB7IF90IH0gZnJvbSBcIi4uLy4uLy4uL2xhbmd1YWdlSGFuZGxlclwiO1xuaW1wb3J0IFF1ZXN0aW9uRGlhbG9nIGZyb20gXCIuL1F1ZXN0aW9uRGlhbG9nXCI7XG5pbXBvcnQgU3Bpbm5lciBmcm9tIFwiLi4vZWxlbWVudHMvU3Bpbm5lclwiO1xuaW1wb3J0IEhlYWRpbmcgZnJvbSBcIi4uL3R5cG9ncmFwaHkvSGVhZGluZ1wiO1xuXG5pbnRlcmZhY2UgSVByb3BzIHtcbiAgICBuZXdWZXJzaW9uOiBzdHJpbmc7XG4gICAgdmVyc2lvbjogc3RyaW5nO1xuICAgIG9uRmluaXNoZWQ6IChzdWNjZXNzOiBib29sZWFuKSA9PiB2b2lkO1xufVxuXG50eXBlIFN0YXRlID0gUGFydGlhbDxSZWNvcmQ8KHR5cGVvZiBSRVBPUylbbnVtYmVyXSwgbnVsbCB8IHN0cmluZyB8IENvbW1pdFtdPj47XG5cbmludGVyZmFjZSBDb21taXQge1xuICAgIHNoYTogc3RyaW5nO1xuICAgIGh0bWxfdXJsOiBzdHJpbmc7XG4gICAgY29tbWl0OiB7XG4gICAgICAgIG1lc3NhZ2U6IHN0cmluZztcbiAgICB9O1xufVxuXG5jb25zdCBSRVBPUyA9IFtcImVsZW1lbnQtaHEvZWxlbWVudC13ZWJcIiwgXCJlbGVtZW50LWhxL21hdHJpeC1yZWFjdC1zZGtcIiwgXCJtYXRyaXgtb3JnL21hdHJpeC1qcy1zZGtcIl0gYXMgY29uc3Q7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENoYW5nZWxvZ0RpYWxvZyBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxJUHJvcHMsIFN0YXRlPiB7XG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHByb3BzOiBJUHJvcHMpIHtcbiAgICAgICAgc3VwZXIocHJvcHMpO1xuXG4gICAgICAgIHRoaXMuc3RhdGUgPSB7fTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIGZldGNoQ2hhbmdlcyhyZXBvOiAodHlwZW9mIFJFUE9TKVtudW1iZXJdLCBvbGRWZXJzaW9uOiBzdHJpbmcsIG5ld1ZlcnNpb246IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCB1cmwgPSBgaHR0cHM6Ly9yaW90LmltL2dpdGh1Yi9yZXBvcy8ke3JlcG99L2NvbXBhcmUvJHtvbGRWZXJzaW9ufS4uLiR7bmV3VmVyc2lvbn1gO1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCByZXMgPSBhd2FpdCBmZXRjaCh1cmwpO1xuXG4gICAgICAgICAgICBpZiAoIXJlcy5vaykge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBbcmVwb106IHJlcy5zdGF0dXNUZXh0IH0pO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgYm9keSA9IGF3YWl0IHJlcy5qc29uKCk7XG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgW3JlcG9dOiBib2R5LmNvbW1pdHMgfSk7XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IFtyZXBvXTogZXJyIGluc3RhbmNlb2YgRXJyb3IgPyBlcnIubWVzc2FnZSA6IF90KFwiZXJyb3J8dW5rbm93blwiKSB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBjb21wb25lbnREaWRNb3VudCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdmVyc2lvbiA9IHRoaXMucHJvcHMubmV3VmVyc2lvbi5zcGxpdChcIi1cIik7XG4gICAgICAgIGNvbnN0IHZlcnNpb24yID0gdGhpcy5wcm9wcy52ZXJzaW9uLnNwbGl0KFwiLVwiKTtcbiAgICAgICAgaWYgKHZlcnNpb24gPT0gbnVsbCB8fCB2ZXJzaW9uMiA9PSBudWxsKSByZXR1cm47XG4gICAgICAgIC8vIHBhcnNlIHZlcnNpb25zIG9mIGZvcm06IFt2ZWN0b3J2ZXJzaW9uXS1yZWFjdC1bcmVhY3Qtc2RrLXZlcnNpb25dLWpzLVtqcy1zZGstdmVyc2lvbl1cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBSRVBPUy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3Qgb2xkVmVyc2lvbiA9IHZlcnNpb24yWzIgKiBpXTtcbiAgICAgICAgICAgIGNvbnN0IG5ld1ZlcnNpb24gPSB2ZXJzaW9uWzIgKiBpXTtcbiAgICAgICAgICAgIHRoaXMuZmV0Y2hDaGFuZ2VzKFJFUE9TW2ldLCBvbGRWZXJzaW9uLCBuZXdWZXJzaW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZWxlbWVudHNGb3JDb21taXQoY29tbWl0OiBDb21taXQpOiBKU1guRWxlbWVudCB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8bGkga2V5PXtjb21taXQuc2hhfSBjbGFzc05hbWU9XCJteF9DaGFuZ2Vsb2dEaWFsb2dfbGlcIj5cbiAgICAgICAgICAgICAgICA8YSBocmVmPXtjb21taXQuaHRtbF91cmx9IHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vcmVmZXJyZXIgbm9vcGVuZXJcIj5cbiAgICAgICAgICAgICAgICAgICAge2NvbW1pdC5jb21taXQubWVzc2FnZS5zcGxpdChcIlxcblwiKVswXX1cbiAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyByZW5kZXIoKTogUmVhY3QuUmVhY3ROb2RlIHtcbiAgICAgICAgY29uc3QgbG9ncyA9IFJFUE9TLm1hcCgocmVwbykgPT4ge1xuICAgICAgICAgICAgbGV0IGNvbnRlbnQ7XG4gICAgICAgICAgICBpZiAodGhpcy5zdGF0ZVtyZXBvXSA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgY29udGVudCA9IDxTcGlubmVyIGtleT17cmVwb30gLz47XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiB0aGlzLnN0YXRlW3JlcG9dID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICAgICAgY29udGVudCA9IF90KFwidXBkYXRlfGVycm9yX3VuYWJsZV9sb2FkX2NvbW1pdFwiLCB7XG4gICAgICAgICAgICAgICAgICAgIG1zZzogdGhpcy5zdGF0ZVtyZXBvXSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29udGVudCA9ICh0aGlzLnN0YXRlW3JlcG9dIGFzIENvbW1pdFtdKS5tYXAodGhpcy5lbGVtZW50c0ZvckNvbW1pdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIDxkaXYga2V5PXtyZXBvfT5cbiAgICAgICAgICAgICAgICAgICAgPEhlYWRpbmcgYXM9XCJoMlwiIHNpemU9XCI0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7cmVwb31cbiAgICAgICAgICAgICAgICAgICAgPC9IZWFkaW5nPlxuICAgICAgICAgICAgICAgICAgICA8dWw+e2NvbnRlbnR9PC91bD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IGNvbnRlbnQgPSAoXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm14X0NoYW5nZWxvZ0RpYWxvZ19jb250ZW50XCI+XG4gICAgICAgICAgICAgICAge3RoaXMucHJvcHMudmVyc2lvbiA9PSBudWxsIHx8IHRoaXMucHJvcHMubmV3VmVyc2lvbiA9PSBudWxsID8gKFxuICAgICAgICAgICAgICAgICAgICA8aDI+e190KFwidXBkYXRlfHVuYXZhaWxhYmxlXCIpfTwvaDI+XG4gICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgbG9nc1xuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPFF1ZXN0aW9uRGlhbG9nXG4gICAgICAgICAgICAgICAgdGl0bGU9e190KFwidXBkYXRlfGNoYW5nZWxvZ1wiKX1cbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbj17Y29udGVudH1cbiAgICAgICAgICAgICAgICBidXR0b249e190KFwiYWN0aW9ufHVwZGF0ZVwiKX1cbiAgICAgICAgICAgICAgICBvbkZpbmlzaGVkPXt0aGlzLnByb3BzLm9uRmluaXNoZWR9XG4gICAgICAgICAgICAvPlxuICAgICAgICApO1xuICAgIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQVNBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFDLGdCQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxlQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRyxRQUFBLEdBQUFKLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSSxRQUFBLEdBQUFMLHNCQUFBLENBQUFDLE9BQUE7QUFkQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQXlCQSxNQUFNSyxLQUFLLEdBQUcsQ0FBQyx3QkFBd0IsRUFBRSw2QkFBNkIsRUFBRSwwQkFBMEIsQ0FBVTtBQUU3RixNQUFNQyxlQUFlLFNBQVNDLGNBQUssQ0FBQ0MsU0FBUyxDQUFnQjtFQUNqRUMsV0FBV0EsQ0FBQ0MsS0FBYSxFQUFFO0lBQzlCLEtBQUssQ0FBQ0EsS0FBSyxDQUFDO0lBRVosSUFBSSxDQUFDQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO0VBQ25CO0VBRUEsTUFBY0MsWUFBWUEsQ0FBQ0MsSUFBNEIsRUFBRUMsVUFBa0IsRUFBRUMsVUFBa0IsRUFBaUI7SUFDNUcsTUFBTUMsR0FBRyxHQUFHLGdDQUFnQ0gsSUFBSSxZQUFZQyxVQUFVLE1BQU1DLFVBQVUsRUFBRTtJQUV4RixJQUFJO01BQ0EsTUFBTUUsR0FBRyxHQUFHLE1B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