matrix-react-sdk
Version:
SDK for matrix.org using React
116 lines (113 loc) • 15.1 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.showToast = exports.hideToast = exports.Kind = void 0;
var _Modal = _interopRequireDefault(require("../Modal"));
var _languageHandler = require("../languageHandler");
var _DeviceListener = _interopRequireDefault(require("../DeviceListener"));
var _SetupEncryptionDialog = _interopRequireDefault(require("../components/views/dialogs/security/SetupEncryptionDialog"));
var _SecurityManager = require("../SecurityManager");
var _ToastStore = _interopRequireDefault(require("../stores/ToastStore"));
var _GenericToast = _interopRequireDefault(require("../components/views/toasts/GenericToast"));
var _ModuleRunner = require("../modules/ModuleRunner");
var _SetupEncryptionStore = require("../stores/SetupEncryptionStore");
var _Spinner = _interopRequireDefault(require("../components/views/elements/Spinner"));
/*
Copyright 2024 New Vector Ltd.
Copyright 2020 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.
*/
const TOAST_KEY = "setupencryption";
const getTitle = kind => {
switch (kind) {
case Kind.SET_UP_ENCRYPTION:
return (0, _languageHandler._t)("encryption|set_up_toast_title");
case Kind.UPGRADE_ENCRYPTION:
return (0, _languageHandler._t)("encryption|upgrade_toast_title");
case Kind.VERIFY_THIS_SESSION:
return (0, _languageHandler._t)("encryption|verify_toast_title");
}
};
const getIcon = kind => {
switch (kind) {
case Kind.SET_UP_ENCRYPTION:
case Kind.UPGRADE_ENCRYPTION:
return "secure_backup";
case Kind.VERIFY_THIS_SESSION:
return "verification_warning";
}
};
const getSetupCaption = kind => {
switch (kind) {
case Kind.SET_UP_ENCRYPTION:
return (0, _languageHandler._t)("action|continue");
case Kind.UPGRADE_ENCRYPTION:
return (0, _languageHandler._t)("action|upgrade");
case Kind.VERIFY_THIS_SESSION:
return (0, _languageHandler._t)("action|verify");
}
};
const getDescription = kind => {
switch (kind) {
case Kind.SET_UP_ENCRYPTION:
case Kind.UPGRADE_ENCRYPTION:
return (0, _languageHandler._t)("encryption|set_up_toast_description");
case Kind.VERIFY_THIS_SESSION:
return (0, _languageHandler._t)("encryption|verify_toast_description");
}
};
let Kind = exports.Kind = /*#__PURE__*/function (Kind) {
Kind["SET_UP_ENCRYPTION"] = "set_up_encryption";
Kind["UPGRADE_ENCRYPTION"] = "upgrade_encryption";
Kind["VERIFY_THIS_SESSION"] = "verify_this_session";
return Kind;
}({});
const onReject = () => {
_DeviceListener.default.sharedInstance().dismissEncryptionSetup();
};
const showToast = kind => {
if (_ModuleRunner.ModuleRunner.instance.extensions.cryptoSetup.setupEncryptionNeeded({
kind: kind,
storeProvider: {
getInstance: () => _SetupEncryptionStore.SetupEncryptionStore.sharedInstance()
}
})) {
return;
}
const onAccept = async () => {
if (kind === Kind.VERIFY_THIS_SESSION) {
_Modal.default.createDialog(_SetupEncryptionDialog.default, {}, undefined, /* priority = */false, /* static = */true);
} else {
const modal = _Modal.default.createDialog(_Spinner.default, undefined, "mx_Dialog_spinner", /* priority */false, /* static */true);
try {
await (0, _SecurityManager.accessSecretStorage)();
} finally {
modal.close();
}
}
};
_ToastStore.default.sharedInstance().addOrReplaceToast({
key: TOAST_KEY,
title: getTitle(kind),
icon: getIcon(kind),
props: {
description: getDescription(kind),
primaryLabel: getSetupCaption(kind),
onPrimaryClick: onAccept,
secondaryLabel: (0, _languageHandler._t)("encryption|verification|unverified_sessions_toast_reject"),
onSecondaryClick: onReject,
destructive: "secondary"
},
component: _GenericToast.default,
priority: kind === Kind.VERIFY_THIS_SESSION ? 95 : 40
});
};
exports.showToast = showToast;
const hideToast = () => {
_ToastStore.default.sharedInstance().dismissToast(TOAST_KEY);
};
exports.hideToast = hideToast;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfTW9kYWwiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9sYW5ndWFnZUhhbmRsZXIiLCJfRGV2aWNlTGlzdGVuZXIiLCJfU2V0dXBFbmNyeXB0aW9uRGlhbG9nIiwiX1NlY3VyaXR5TWFuYWdlciIsIl9Ub2FzdFN0b3JlIiwiX0dlbmVyaWNUb2FzdCIsIl9Nb2R1bGVSdW5uZXIiLCJfU2V0dXBFbmNyeXB0aW9uU3RvcmUiLCJfU3Bpbm5lciIsIlRPQVNUX0tFWSIsImdldFRpdGxlIiwia2luZCIsIktpbmQiLCJTRVRfVVBfRU5DUllQVElPTiIsIl90IiwiVVBHUkFERV9FTkNSWVBUSU9OIiwiVkVSSUZZX1RISVNfU0VTU0lPTiIsImdldEljb24iLCJnZXRTZXR1cENhcHRpb24iLCJnZXREZXNjcmlwdGlvbiIsImV4cG9ydHMiLCJvblJlamVjdCIsIkRldmljZUxpc3RlbmVyIiwic2hhcmVkSW5zdGFuY2UiLCJkaXNtaXNzRW5jcnlwdGlvblNldHVwIiwic2hvd1RvYXN0IiwiTW9kdWxlUnVubmVyIiwiaW5zdGFuY2UiLCJleHRlbnNpb25zIiwiY3J5cHRvU2V0dXAiLCJzZXR1cEVuY3J5cHRpb25OZWVkZWQiLCJzdG9yZVByb3ZpZGVyIiwiZ2V0SW5zdGFuY2UiLCJTZXR1cEVuY3J5cHRpb25TdG9yZSIsIm9uQWNjZXB0IiwiTW9kYWwiLCJjcmVhdGVEaWFsb2ciLCJTZXR1cEVuY3J5cHRpb25EaWFsb2ciLCJ1bmRlZmluZWQiLCJtb2RhbCIsIlNwaW5uZXIiLCJhY2Nlc3NTZWNyZXRTdG9yYWdlIiwiY2xvc2UiLCJUb2FzdFN0b3JlIiwiYWRkT3JSZXBsYWNlVG9hc3QiLCJrZXkiLCJ0aXRsZSIsImljb24iLCJwcm9wcyIsImRlc2NyaXB0aW9uIiwicHJpbWFyeUxhYmVsIiwib25QcmltYXJ5Q2xpY2siLCJzZWNvbmRhcnlMYWJlbCIsIm9uU2Vjb25kYXJ5Q2xpY2siLCJkZXN0cnVjdGl2ZSIsImNvbXBvbmVudCIsIkdlbmVyaWNUb2FzdCIsInByaW9yaXR5IiwiaGlkZVRvYXN0IiwiZGlzbWlzc1RvYXN0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3RvYXN0cy9TZXR1cEVuY3J5cHRpb25Ub2FzdC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHlcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG5pbXBvcnQgTW9kYWwgZnJvbSBcIi4uL01vZGFsXCI7XG5pbXBvcnQgeyBfdCB9IGZyb20gXCIuLi9sYW5ndWFnZUhhbmRsZXJcIjtcbmltcG9ydCBEZXZpY2VMaXN0ZW5lciBmcm9tIFwiLi4vRGV2aWNlTGlzdGVuZXJcIjtcbmltcG9ydCBTZXR1cEVuY3J5cHRpb25EaWFsb2cgZnJvbSBcIi4uL2NvbXBvbmVudHMvdmlld3MvZGlhbG9ncy9zZWN1cml0eS9TZXR1cEVuY3J5cHRpb25EaWFsb2dcIjtcbmltcG9ydCB7IGFjY2Vzc1NlY3JldFN0b3JhZ2UgfSBmcm9tIFwiLi4vU2VjdXJpdHlNYW5hZ2VyXCI7XG5pbXBvcnQgVG9hc3RTdG9yZSBmcm9tIFwiLi4vc3RvcmVzL1RvYXN0U3RvcmVcIjtcbmltcG9ydCBHZW5lcmljVG9hc3QgZnJvbSBcIi4uL2NvbXBvbmVudHMvdmlld3MvdG9hc3RzL0dlbmVyaWNUb2FzdFwiO1xuaW1wb3J0IHsgTW9kdWxlUnVubmVyIH0gZnJvbSBcIi4uL21vZHVsZXMvTW9kdWxlUnVubmVyXCI7XG5pbXBvcnQgeyBTZXR1cEVuY3J5cHRpb25TdG9yZSB9IGZyb20gXCIuLi9zdG9yZXMvU2V0dXBFbmNyeXB0aW9uU3RvcmVcIjtcbmltcG9ydCBTcGlubmVyIGZyb20gXCIuLi9jb21wb25lbnRzL3ZpZXdzL2VsZW1lbnRzL1NwaW5uZXJcIjtcblxuY29uc3QgVE9BU1RfS0VZID0gXCJzZXR1cGVuY3J5cHRpb25cIjtcblxuY29uc3QgZ2V0VGl0bGUgPSAoa2luZDogS2luZCk6IHN0cmluZyA9PiB7XG4gICAgc3dpdGNoIChraW5kKSB7XG4gICAgICAgIGNhc2UgS2luZC5TRVRfVVBfRU5DUllQVElPTjpcbiAgICAgICAgICAgIHJldHVybiBfdChcImVuY3J5cHRpb258c2V0X3VwX3RvYXN0X3RpdGxlXCIpO1xuICAgICAgICBjYXNlIEtpbmQuVVBHUkFERV9FTkNSWVBUSU9OOlxuICAgICAgICAgICAgcmV0dXJuIF90KFwiZW5jcnlwdGlvbnx1cGdyYWRlX3RvYXN0X3RpdGxlXCIpO1xuICAgICAgICBjYXNlIEtpbmQuVkVSSUZZX1RISVNfU0VTU0lPTjpcbiAgICAgICAgICAgIHJldHVybiBfdChcImVuY3J5cHRpb258dmVyaWZ5X3RvYXN0X3RpdGxlXCIpO1xuICAgIH1cbn07XG5cbmNvbnN0IGdldEljb24gPSAoa2luZDogS2luZCk6IHN0cmluZyA9PiB7XG4gICAgc3dpdGNoIChraW5kKSB7XG4gICAgICAgIGNhc2UgS2luZC5TRVRfVVBfRU5DUllQVElPTjpcbiAgICAgICAgY2FzZSBLaW5kLlVQR1JBREVfRU5DUllQVElPTjpcbiAgICAgICAgICAgIHJldHVybiBcInNlY3VyZV9iYWNrdXBcIjtcbiAgICAgICAgY2FzZSBLaW5kLlZFUklGWV9USElTX1NFU1NJT046XG4gICAgICAgICAgICByZXR1cm4gXCJ2ZXJpZmljYXRpb25fd2FybmluZ1wiO1xuICAgIH1cbn07XG5cbmNvbnN0IGdldFNldHVwQ2FwdGlvbiA9IChraW5kOiBLaW5kKTogc3RyaW5nID0+IHtcbiAgICBzd2l0Y2ggKGtpbmQpIHtcbiAgICAgICAgY2FzZSBLaW5kLlNFVF9VUF9FTkNSWVBUSU9OOlxuICAgICAgICAgICAgcmV0dXJuIF90KFwiYWN0aW9ufGNvbnRpbnVlXCIpO1xuICAgICAgICBjYXNlIEtpbmQuVVBHUkFERV9FTkNSWVBUSU9OOlxuICAgICAgICAgICAgcmV0dXJuIF90KFwiYWN0aW9ufHVwZ3JhZGVcIik7XG4gICAgICAgIGNhc2UgS2luZC5WRVJJRllfVEhJU19TRVNTSU9OOlxuICAgICAgICAgICAgcmV0dXJuIF90KFwiYWN0aW9ufHZlcmlmeVwiKTtcbiAgICB9XG59O1xuXG5jb25zdCBnZXREZXNjcmlwdGlvbiA9IChraW5kOiBLaW5kKTogc3RyaW5nID0+IHtcbiAgICBzd2l0Y2ggKGtpbmQpIHtcbiAgICAgICAgY2FzZSBLaW5kLlNFVF9VUF9FTkNSWVBUSU9OOlxuICAgICAgICBjYXNlIEtpbmQuVVBHUkFERV9FTkNSWVBUSU9OOlxuICAgICAgICAgICAgcmV0dXJuIF90KFwiZW5jcnlwdGlvbnxzZXRfdXBfdG9hc3RfZGVzY3JpcHRpb25cIik7XG4gICAgICAgIGNhc2UgS2luZC5WRVJJRllfVEhJU19TRVNTSU9OOlxuICAgICAgICAgICAgcmV0dXJuIF90KFwiZW5jcnlwdGlvbnx2ZXJpZnlfdG9hc3RfZGVzY3JpcHRpb25cIik7XG4gICAgfVxufTtcblxuZXhwb3J0IGVudW0gS2luZCB7XG4gICAgU0VUX1VQX0VOQ1JZUFRJT04gPSBcInNldF91cF9lbmNyeXB0aW9uXCIsXG4gICAgVVBHUkFERV9FTkNSWVBUSU9OID0gXCJ1cGdyYWRlX2VuY3J5cHRpb25cIixcbiAgICBWRVJJRllfVEhJU19TRVNTSU9OID0gXCJ2ZXJpZnlfdGhpc19zZXNzaW9uXCIsXG59XG5cbmNvbnN0IG9uUmVqZWN0ID0gKCk6IHZvaWQgPT4ge1xuICAgIERldmljZUxpc3RlbmVyLnNoYXJlZEluc3RhbmNlKCkuZGlzbWlzc0VuY3J5cHRpb25TZXR1cCgpO1xufTtcblxuZXhwb3J0IGNvbnN0IHNob3dUb2FzdCA9IChraW5kOiBLaW5kKTogdm9pZCA9PiB7XG4gICAgaWYgKFxuICAgICAgICBNb2R1bGVSdW5uZXIuaW5zdGFuY2UuZXh0ZW5zaW9ucy5jcnlwdG9TZXR1cC5zZXR1cEVuY3J5cHRpb25OZWVkZWQoe1xuICAgICAgICAgICAga2luZDoga2luZCBhcyBhbnksXG4gICAgICAgICAgICBzdG9yZVByb3ZpZGVyOiB7IGdldEluc3RhbmNlOiAoKSA9PiBTZXR1cEVuY3J5cHRpb25TdG9yZS5zaGFyZWRJbnN0YW5jZSgpIH0sXG4gICAgICAgIH0pXG4gICAgKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBvbkFjY2VwdCA9IGFzeW5jICgpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgICAgaWYgKGtpbmQgPT09IEtpbmQuVkVSSUZZX1RISVNfU0VTU0lPTikge1xuICAgICAgICAgICAgTW9kYWwuY3JlYXRlRGlhbG9nKFNldHVwRW5jcnlwdGlvbkRpYWxvZywge30sIHVuZGVmaW5lZCwgLyogcHJpb3JpdHkgPSAqLyBmYWxzZSwgLyogc3RhdGljID0gKi8gdHJ1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBtb2RhbCA9IE1vZGFsLmNyZWF0ZURpYWxvZyhcbiAgICAgICAgICAgICAgICBTcGlubmVyLFxuICAgICAgICAgICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBcIm14X0RpYWxvZ19zcGlubmVyXCIsXG4gICAgICAgICAgICAgICAgLyogcHJpb3JpdHkgKi8gZmFsc2UsXG4gICAgICAgICAgICAgICAgLyogc3RhdGljICovIHRydWUsXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBhd2FpdCBhY2Nlc3NTZWNyZXRTdG9yYWdlKCk7XG4gICAgICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgICAgIG1vZGFsLmNsb3NlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgVG9hc3RTdG9yZS5zaGFyZWRJbnN0YW5jZSgpLmFkZE9yUmVwbGFjZVRvYXN0KHtcbiAgICAgICAga2V5OiBUT0FTVF9LRVksXG4gICAgICAgIHRpdGxlOiBnZXRUaXRsZShraW5kKSxcbiAgICAgICAgaWNvbjogZ2V0SWNvbihraW5kKSxcbiAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBnZXREZXNjcmlwdGlvbihraW5kKSxcbiAgICAgICAgICAgIHByaW1hcnlMYWJlbDogZ2V0U2V0dXBDYXB0aW9uKGtpbmQpLFxuICAgICAgICAgICAgb25QcmltYXJ5Q2xpY2s6IG9uQWNjZXB0LFxuICAgICAgICAgICAgc2Vjb25kYXJ5TGFiZWw6IF90KFwiZW5jcnlwdGlvbnx2ZXJpZmljYXRpb258dW52ZXJpZmllZF9zZXNzaW9uc190b2FzdF9yZWplY3RcIiksXG4gICAgICAgICAgICBvblNlY29uZGFyeUNsaWNrOiBvblJlamVjdCxcbiAgICAgICAgICAgIGRlc3RydWN0aXZlOiBcInNlY29uZGFyeVwiLFxuICAgICAgICB9LFxuICAgICAgICBjb21wb25lbnQ6IEdlbmVyaWNUb2FzdCxcbiAgICAgICAgcHJpb3JpdHk6IGtpbmQgPT09IEtpbmQuVkVSSUZZX1RISVNfU0VTU0lPTiA/IDk1IDogNDAsXG4gICAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgaGlkZVRvYXN0ID0gKCk6IHZvaWQgPT4ge1xuICAgIFRvYXN0U3RvcmUuc2hhcmVkSW5zdGFuY2UoKS5kaXNtaXNzVG9hc3QoVE9BU1RfS0VZKTtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFRQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxnQkFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsZUFBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUcsc0JBQUEsR0FBQUosc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFJLGdCQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxXQUFBLEdBQUFOLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBTSxhQUFBLEdBQUFQLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBTyxhQUFBLEdBQUFQ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