matrix-react-sdk
Version:
SDK for matrix.org using React
130 lines (105 loc) • 11.8 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.hideToast = exports.showToast = void 0;
var _react = _interopRequireDefault(require("react"));
var _languageHandler = require("../languageHandler");
var _SdkConfig = _interopRequireDefault(require("../SdkConfig"));
var _GenericToast = _interopRequireDefault(require("../components/views/toasts/GenericToast"));
var _ToastStore = _interopRequireDefault(require("../stores/ToastStore"));
var _QuestionDialog = _interopRequireDefault(require("../components/views/dialogs/QuestionDialog"));
var _ChangelogDialog = _interopRequireDefault(require("../components/views/dialogs/ChangelogDialog"));
var _PlatformPeg = _interopRequireDefault(require("../PlatformPeg"));
var _Modal = _interopRequireDefault(require("../Modal"));
/*
Copyright 2020 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 TOAST_KEY = "update";
/*
* Check a version string is compatible with the Changelog
* dialog ([element-version]-react-[react-sdk-version]-js-[js-sdk-version])
*/
function checkVersion(ver) {
const parts = ver.split('-');
return parts.length === 5 && parts[1] === 'react' && parts[3] === 'js';
}
function installUpdate() {
_PlatformPeg.default.get().installUpdate();
}
const showToast = (version
/*: string*/
, newVersion
/*: string*/
, releaseNotes
/*: string*/
) => {
function onReject() {
_PlatformPeg.default.get().deferUpdate(newVersion);
}
let onAccept;
let acceptLabel = (0, _languageHandler._t)("What's new?");
if (releaseNotes) {
onAccept = () => {
_Modal.default.createTrackedDialog('Display release notes', '', _QuestionDialog.default, {
title: (0, _languageHandler._t)("What's New"),
description: /*#__PURE__*/_react.default.createElement("pre", null, releaseNotes),
button: (0, _languageHandler._t)("Update"),
onFinished: update => {
if (update && _PlatformPeg.default.get()) {
_PlatformPeg.default.get().installUpdate();
}
}
});
};
} else if (checkVersion(version) && checkVersion(newVersion)) {
onAccept = () => {
_Modal.default.createTrackedDialog('Display Changelog', '', _ChangelogDialog.default, {
version,
newVersion,
onFinished: update => {
if (update && _PlatformPeg.default.get()) {
_PlatformPeg.default.get().installUpdate();
}
}
});
};
} else {
onAccept = installUpdate;
acceptLabel = (0, _languageHandler._t)("Update");
}
const brand = _SdkConfig.default.get().brand;
_ToastStore.default.sharedInstance().addOrReplaceToast({
key: TOAST_KEY,
title: (0, _languageHandler._t)("Update %(brand)s", {
brand
}),
props: {
description: (0, _languageHandler._t)("New version of %(brand)s is available", {
brand
}),
acceptLabel,
onAccept,
rejectLabel: (0, _languageHandler._t)("Dismiss"),
onReject
},
component: _GenericToast.default,
priority: 20
});
};
exports.showToast = showToast;
const hideToast = () => {
_ToastStore.default.sharedInstance().dismissToast(TOAST_KEY);
};
exports.hideToast = hideToast;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90b2FzdHMvVXBkYXRlVG9hc3QudHN4Il0sIm5hbWVzIjpbIlRPQVNUX0tFWSIsImNoZWNrVmVyc2lvbiIsInZlciIsInBhcnRzIiwic3BsaXQiLCJsZW5ndGgiLCJpbnN0YWxsVXBkYXRlIiwiUGxhdGZvcm1QZWciLCJnZXQiLCJzaG93VG9hc3QiLCJ2ZXJzaW9uIiwibmV3VmVyc2lvbiIsInJlbGVhc2VOb3RlcyIsIm9uUmVqZWN0IiwiZGVmZXJVcGRhdGUiLCJvbkFjY2VwdCIsImFjY2VwdExhYmVsIiwiTW9kYWwiLCJjcmVhdGVUcmFja2VkRGlhbG9nIiwiUXVlc3Rpb25EaWFsb2ciLCJ0aXRsZSIsImRlc2NyaXB0aW9uIiwiYnV0dG9uIiwib25GaW5pc2hlZCIsInVwZGF0ZSIsIkNoYW5nZWxvZ0RpYWxvZyIsImJyYW5kIiwiU2RrQ29uZmlnIiwiVG9hc3RTdG9yZSIsInNoYXJlZEluc3RhbmNlIiwiYWRkT3JSZXBsYWNlVG9hc3QiLCJrZXkiLCJwcm9wcyIsInJlamVjdExhYmVsIiwiY29tcG9uZW50IiwiR2VuZXJpY1RvYXN0IiwicHJpb3JpdHkiLCJoaWRlVG9hc3QiLCJkaXNtaXNzVG9hc3QiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQWdCQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUF6QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBYUEsTUFBTUEsU0FBUyxHQUFHLFFBQWxCO0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsU0FBU0MsWUFBVCxDQUFzQkMsR0FBdEIsRUFBMkI7QUFDdkIsUUFBTUMsS0FBSyxHQUFHRCxHQUFHLENBQUNFLEtBQUosQ0FBVSxHQUFWLENBQWQ7QUFDQSxTQUFPRCxLQUFLLENBQUNFLE1BQU4sS0FBaUIsQ0FBakIsSUFBc0JGLEtBQUssQ0FBQyxDQUFELENBQUwsS0FBYSxPQUFuQyxJQUE4Q0EsS0FBSyxDQUFDLENBQUQsQ0FBTCxLQUFhLElBQWxFO0FBQ0g7O0FBRUQsU0FBU0csYUFBVCxHQUF5QjtBQUNyQkMsdUJBQVlDLEdBQVosR0FBa0JGLGFBQWxCO0FBQ0g7O0FBRU0sTUFBTUcsU0FBUyxHQUFHLENBQUNDO0FBQUQ7QUFBQSxFQUFrQkM7QUFBbEI7QUFBQSxFQUFzQ0M7QUFBdEM7QUFBQSxLQUFnRTtBQUNyRixXQUFTQyxRQUFULEdBQW9CO0FBQ2hCTix5QkFBWUMsR0FBWixHQUFrQk0sV0FBbEIsQ0FBOEJILFVBQTlCO0FBQ0g7O0FBRUQsTUFBSUksUUFBSjtBQUNBLE1BQUlDLFdBQVcsR0FBRyx5QkFBRyxhQUFILENBQWxCOztBQUNBLE1BQUlKLFlBQUosRUFBa0I7QUFDZEcsSUFBQUEsUUFBUSxHQUFHLE1BQU07QUFDYkUscUJBQU1DLG1CQUFOLENBQTBCLHVCQUExQixFQUFtRCxFQUFuRCxFQUF1REMsdUJBQXZELEVBQXVFO0FBQ25FQyxRQUFBQSxLQUFLLEVBQUUseUJBQUcsWUFBSCxDQUQ0RDtBQUVuRUMsUUFBQUEsV0FBVyxlQUFFLDBDQUFNVCxZQUFOLENBRnNEO0FBR25FVSxRQUFBQSxNQUFNLEVBQUUseUJBQUcsUUFBSCxDQUgyRDtBQUluRUMsUUFBQUEsVUFBVSxFQUFHQyxNQUFELElBQVk7QUFDcEIsY0FBSUEsTUFBTSxJQUFJakIscUJBQVlDLEdBQVosRUFBZCxFQUFpQztBQUM3QkQsaUNBQVlDLEdBQVosR0FBa0JGLGFBQWxCO0FBQ0g7QUFDSjtBQVJrRSxPQUF2RTtBQVVILEtBWEQ7QUFZSCxHQWJELE1BYU8sSUFBSUwsWUFBWSxDQUFDUyxPQUFELENBQVosSUFBeUJULFlBQVksQ0FBQ1UsVUFBRCxDQUF6QyxFQUF1RDtBQUMxREksSUFBQUEsUUFBUSxHQUFHLE1BQU07QUFDYkUscUJBQU1DLG1CQUFOLENBQTBCLG1CQUExQixFQUErQyxFQUEvQyxFQUFtRE8sd0JBQW5ELEVBQW9FO0FBQ2hFZixRQUFBQSxPQURnRTtBQUVoRUMsUUFBQUEsVUFGZ0U7QUFHaEVZLFFBQUFBLFVBQVUsRUFBR0MsTUFBRCxJQUFZO0FBQ3BCLGNBQUlBLE1BQU0sSUFBSWpCLHFCQUFZQyxHQUFaLEVBQWQsRUFBaUM7QUFDN0JELGlDQUFZQyxHQUFaLEdBQWtCRixhQUFsQjtBQUNIO0FBQ0o7QUFQK0QsT0FBcEU7QUFTSCxLQVZEO0FBV0gsR0FaTSxNQVlBO0FBQ0hTLElBQUFBLFFBQVEsR0FBR1QsYUFBWDtBQUNBVSxJQUFBQSxXQUFXLEdBQUcseUJBQUcsUUFBSCxDQUFkO0FBQ0g7O0FBRUQsUUFBTVUsS0FBSyxHQUFHQyxtQkFBVW5CLEdBQVYsR0FBZ0JrQixLQUE5Qjs7QUFDQUUsc0JBQVdDLGNBQVgsR0FBNEJDLGlCQUE1QixDQUE4QztBQUMxQ0MsSUFBQUEsR0FBRyxFQUFFL0IsU0FEcUM7QUFFMUNvQixJQUFBQSxLQUFLLEVBQUUseUJBQUcsa0JBQUgsRUFBdUI7QUFBRU0sTUFBQUE7QUFBRixLQUF2QixDQUZtQztBQUcxQ00sSUFBQUEsS0FBSyxFQUFFO0FBQ0hYLE1BQUFBLFdBQVcsRUFBRSx5QkFBRyx1Q0FBSCxFQUE0QztBQUFFSyxRQUFBQTtBQUFGLE9BQTVDLENBRFY7QUFFSFYsTUFBQUEsV0FGRztBQUdIRCxNQUFBQSxRQUhHO0FBSUhrQixNQUFBQSxXQUFXLEVBQUUseUJBQUcsU0FBSCxDQUpWO0FBS0hwQixNQUFBQTtBQUxHLEtBSG1DO0FBVTFDcUIsSUFBQUEsU0FBUyxFQUFFQyxxQkFWK0I7QUFXMUNDLElBQUFBLFFBQVEsRUFBRTtBQVhnQyxHQUE5QztBQWFILENBbkRNOzs7O0FBcURBLE1BQU1DLFNBQVMsR0FBRyxNQUFNO0FBQzNCVCxzQkFBV0MsY0FBWCxHQUE0QlMsWUFBNUIsQ0FBeUN0QyxTQUF6QztBQUNILENBRk0iLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbnlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbllvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuXG5odHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcblxuVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG5TZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG5saW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiovXG5cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IHsgX3QgfSBmcm9tIFwiLi4vbGFuZ3VhZ2VIYW5kbGVyXCI7XG5pbXBvcnQgU2RrQ29uZmlnIGZyb20gXCIuLi9TZGtDb25maWdcIjtcbmltcG9ydCBHZW5lcmljVG9hc3QgZnJvbSBcIi4uL2NvbXBvbmVudHMvdmlld3MvdG9hc3RzL0dlbmVyaWNUb2FzdFwiO1xuaW1wb3J0IFRvYXN0U3RvcmUgZnJvbSBcIi4uL3N0b3Jlcy9Ub2FzdFN0b3JlXCI7XG5pbXBvcnQgUXVlc3Rpb25EaWFsb2cgZnJvbSBcIi4uL2NvbXBvbmVudHMvdmlld3MvZGlhbG9ncy9RdWVzdGlvbkRpYWxvZ1wiO1xuaW1wb3J0IENoYW5nZWxvZ0RpYWxvZyBmcm9tIFwiLi4vY29tcG9uZW50cy92aWV3cy9kaWFsb2dzL0NoYW5nZWxvZ0RpYWxvZ1wiO1xuaW1wb3J0IFBsYXRmb3JtUGVnIGZyb20gXCIuLi9QbGF0Zm9ybVBlZ1wiO1xuaW1wb3J0IE1vZGFsIGZyb20gXCIuLi9Nb2RhbFwiO1xuXG5jb25zdCBUT0FTVF9LRVkgPSBcInVwZGF0ZVwiO1xuXG4vKlxuICogQ2hlY2sgYSB2ZXJzaW9uIHN0cmluZyBpcyBjb21wYXRpYmxlIHdpdGggdGhlIENoYW5nZWxvZ1xuICogZGlhbG9nIChbZWxlbWVudC12ZXJzaW9uXS1yZWFjdC1bcmVhY3Qtc2RrLXZlcnNpb25dLWpzLVtqcy1zZGstdmVyc2lvbl0pXG4gKi9cbmZ1bmN0aW9uIGNoZWNrVmVyc2lvbih2ZXIpIHtcbiAgICBjb25zdCBwYXJ0cyA9IHZlci5zcGxpdCgnLScpO1xuICAgIHJldHVybiBwYXJ0cy5sZW5ndGggPT09IDUgJiYgcGFydHNbMV0gPT09ICdyZWFjdCcgJiYgcGFydHNbM10gPT09ICdqcyc7XG59XG5cbmZ1bmN0aW9uIGluc3RhbGxVcGRhdGUoKSB7XG4gICAgUGxhdGZvcm1QZWcuZ2V0KCkuaW5zdGFsbFVwZGF0ZSgpO1xufVxuXG5leHBvcnQgY29uc3Qgc2hvd1RvYXN0ID0gKHZlcnNpb246IHN0cmluZywgbmV3VmVyc2lvbjogc3RyaW5nLCByZWxlYXNlTm90ZXM/OiBzdHJpbmcpID0+IHtcbiAgICBmdW5jdGlvbiBvblJlamVjdCgpIHtcbiAgICAgICAgUGxhdGZvcm1QZWcuZ2V0KCkuZGVmZXJVcGRhdGUobmV3VmVyc2lvbik7XG4gICAgfVxuXG4gICAgbGV0IG9uQWNjZXB0O1xuICAgIGxldCBhY2NlcHRMYWJlbCA9IF90KFwiV2hhdCdzIG5ldz9cIik7XG4gICAgaWYgKHJlbGVhc2VOb3Rlcykge1xuICAgICAgICBvbkFjY2VwdCA9ICgpID0+IHtcbiAgICAgICAgICAgIE1vZGFsLmNyZWF0ZVRyYWNrZWREaWFsb2coJ0Rpc3BsYXkgcmVsZWFzZSBub3RlcycsICcnLCBRdWVzdGlvbkRpYWxvZywge1xuICAgICAgICAgICAgICAgIHRpdGxlOiBfdChcIldoYXQncyBOZXdcIiksXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IDxwcmU+e3JlbGVhc2VOb3Rlc308L3ByZT4sXG4gICAgICAgICAgICAgICAgYnV0dG9uOiBfdChcIlVwZGF0ZVwiKSxcbiAgICAgICAgICAgICAgICBvbkZpbmlzaGVkOiAodXBkYXRlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh1cGRhdGUgJiYgUGxhdGZvcm1QZWcuZ2V0KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFBsYXRmb3JtUGVnLmdldCgpLmluc3RhbGxVcGRhdGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfTtcbiAgICB9IGVsc2UgaWYgKGNoZWNrVmVyc2lvbih2ZXJzaW9uKSAmJiBjaGVja1ZlcnNpb24obmV3VmVyc2lvbikpIHtcbiAgICAgICAgb25BY2NlcHQgPSAoKSA9PiB7XG4gICAgICAgICAgICBNb2RhbC5jcmVhdGVUcmFja2VkRGlhbG9nKCdEaXNwbGF5IENoYW5nZWxvZycsICcnLCBDaGFuZ2Vsb2dEaWFsb2csIHtcbiAgICAgICAgICAgICAgICB2ZXJzaW9uLFxuICAgICAgICAgICAgICAgIG5ld1ZlcnNpb24sXG4gICAgICAgICAgICAgICAgb25GaW5pc2hlZDogKHVwZGF0ZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodXBkYXRlICYmIFBsYXRmb3JtUGVnLmdldCgpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBQbGF0Zm9ybVBlZy5nZXQoKS5pbnN0YWxsVXBkYXRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgICAgb25BY2NlcHQgPSBpbnN0YWxsVXBkYXRlO1xuICAgICAgICBhY2NlcHRMYWJlbCA9IF90KFwiVXBkYXRlXCIpO1xuICAgIH1cblxuICAgIGNvbnN0IGJyYW5kID0gU2RrQ29uZmlnLmdldCgpLmJyYW5kO1xuICAgIFRvYXN0U3RvcmUuc2hhcmVkSW5zdGFuY2UoKS5hZGRPclJlcGxhY2VUb2FzdCh7XG4gICAgICAgIGtleTogVE9BU1RfS0VZLFxuICAgICAgICB0aXRsZTogX3QoXCJVcGRhdGUgJShicmFuZClzXCIsIHsgYnJhbmQgfSksXG4gICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogX3QoXCJOZXcgdmVyc2lvbiBvZiAlKGJyYW5kKXMgaXMgYXZhaWxhYmxlXCIsIHsgYnJhbmQgfSksXG4gICAgICAgICAgICBhY2NlcHRMYWJlbCxcbiAgICAgICAgICAgIG9uQWNjZXB0LFxuICAgICAgICAgICAgcmVqZWN0TGFiZWw6IF90KFwiRGlzbWlzc1wiKSxcbiAgICAgICAgICAgIG9uUmVqZWN0LFxuICAgICAgICB9LFxuICAgICAgICBjb21wb25lbnQ6IEdlbmVyaWNUb2FzdCxcbiAgICAgICAgcHJpb3JpdHk6IDIwLFxuICAgIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGhpZGVUb2FzdCA9ICgpID0+IHtcbiAgICBUb2FzdFN0b3JlLnNoYXJlZEluc3RhbmNlKCkuZGlzbWlzc1RvYXN0KFRPQVNUX0tFWSk7XG59O1xuIl19