matrix-react-sdk
Version:
SDK for matrix.org using React
87 lines (84 loc) • 11.8 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.Kind = exports.IntegrationManagerInstance = void 0;
var _logger = require("matrix-js-sdk/src/logger");
var _ScalarAuthClient = _interopRequireDefault(require("../ScalarAuthClient"));
var _Terms = require("../Terms");
var _Modal = _interopRequireDefault(require("../Modal"));
var _SettingsStore = _interopRequireDefault(require("../settings/SettingsStore"));
var _IntegrationManager = _interopRequireDefault(require("../components/views/settings/IntegrationManager"));
var _IntegrationManagers = require("./IntegrationManagers");
var _UrlUtils = require("../utils/UrlUtils");
/*
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.
*/
let Kind = exports.Kind = /*#__PURE__*/function (Kind) {
Kind["Account"] = "account";
Kind["Config"] = "config";
Kind["Homeserver"] = "homeserver";
return Kind;
}({});
class IntegrationManagerInstance {
// Per the spec: UI URL is optional.
constructor(kind, apiUrl, uiUrl = apiUrl, id // only applicable in some cases
) {
this.kind = kind;
this.apiUrl = apiUrl;
this.uiUrl = uiUrl;
this.id = id;
}
get name() {
const parsed = (0, _UrlUtils.parseUrl)(this.uiUrl);
return parsed.host ?? "";
}
get trimmedApiUrl() {
const parsed = (0, _UrlUtils.parseUrl)(this.apiUrl);
parsed.pathname = "";
return parsed.toString();
}
getScalarClient() {
return new _ScalarAuthClient.default(this.apiUrl, this.uiUrl);
}
async open(room, screen, integrationId) {
if (!_SettingsStore.default.getValue("integrationProvisioning")) {
return _IntegrationManagers.IntegrationManagers.sharedInstance().showDisabledDialog();
}
const dialog = _Modal.default.createDialog(_IntegrationManager.default, {
loading: true
}, "mx_IntegrationManager");
const client = this.getScalarClient();
client.setTermsInteractionCallback((policyInfo, agreedUrls) => {
// To avoid visual glitching of two modals stacking briefly, we customise the
// terms dialog sizing when it will appear for the integration manager so that
// it gets the same basic size as the integration manager's own modal.
return (0, _Terms.dialogTermsInteractionCallback)(policyInfo, agreedUrls, "mx_TermsDialog_forIntegrationManager");
});
const newProps = {};
try {
await client.connect();
if (!client.hasCredentials()) {
newProps["connected"] = false;
} else {
newProps["url"] = client.getScalarInterfaceUrlForRoom(room, screen, integrationId);
}
} catch (e) {
if (e instanceof _Terms.TermsNotSignedError) {
dialog.close();
return;
}
_logger.logger.error(e);
newProps["connected"] = false;
}
// Close the old dialog and open a new one
dialog.close();
_Modal.default.createDialog(_IntegrationManager.default, newProps, "mx_IntegrationManager");
}
}
exports.IntegrationManagerInstance = IntegrationManagerInstance;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9nZ2VyIiwicmVxdWlyZSIsIl9TY2FsYXJBdXRoQ2xpZW50IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9UZXJtcyIsIl9Nb2RhbCIsIl9TZXR0aW5nc1N0b3JlIiwiX0ludGVncmF0aW9uTWFuYWdlciIsIl9JbnRlZ3JhdGlvbk1hbmFnZXJzIiwiX1VybFV0aWxzIiwiS2luZCIsImV4cG9ydHMiLCJJbnRlZ3JhdGlvbk1hbmFnZXJJbnN0YW5jZSIsImNvbnN0cnVjdG9yIiwia2luZCIsImFwaVVybCIsInVpVXJsIiwiaWQiLCJuYW1lIiwicGFyc2VkIiwicGFyc2VVcmwiLCJob3N0IiwidHJpbW1lZEFwaVVybCIsInBhdGhuYW1lIiwidG9TdHJpbmciLCJnZXRTY2FsYXJDbGllbnQiLCJTY2FsYXJBdXRoQ2xpZW50Iiwib3BlbiIsInJvb20iLCJzY3JlZW4iLCJpbnRlZ3JhdGlvbklkIiwiU2V0dGluZ3NTdG9yZSIsImdldFZhbHVlIiwiSW50ZWdyYXRpb25NYW5hZ2VycyIsInNoYXJlZEluc3RhbmNlIiwic2hvd0Rpc2FibGVkRGlhbG9nIiwiZGlhbG9nIiwiTW9kYWwiLCJjcmVhdGVEaWFsb2ciLCJJbnRlZ3JhdGlvbk1hbmFnZXIiLCJsb2FkaW5nIiwiY2xpZW50Iiwic2V0VGVybXNJbnRlcmFjdGlvbkNhbGxiYWNrIiwicG9saWN5SW5mbyIsImFncmVlZFVybHMiLCJkaWFsb2dUZXJtc0ludGVyYWN0aW9uQ2FsbGJhY2siLCJuZXdQcm9wcyIsImNvbm5lY3QiLCJoYXNDcmVkZW50aWFscyIsImdldFNjYWxhckludGVyZmFjZVVybEZvclJvb20iLCJlIiwiVGVybXNOb3RTaWduZWRFcnJvciIsImNsb3NlIiwibG9nZ2VyIiwiZXJyb3IiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvaW50ZWdyYXRpb25zL0ludGVncmF0aW9uTWFuYWdlckluc3RhbmNlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE5IFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seVxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbmltcG9ydCB7IENvbXBvbmVudFByb3BzIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tIFwibWF0cml4LWpzLXNkay9zcmMvbG9nZ2VyXCI7XG5cbmltcG9ydCB0eXBlIHsgUm9vbSB9IGZyb20gXCJtYXRyaXgtanMtc2RrL3NyYy9tYXRyaXhcIjtcbmltcG9ydCBTY2FsYXJBdXRoQ2xpZW50IGZyb20gXCIuLi9TY2FsYXJBdXRoQ2xpZW50XCI7XG5pbXBvcnQgeyBkaWFsb2dUZXJtc0ludGVyYWN0aW9uQ2FsbGJhY2ssIFRlcm1zTm90U2lnbmVkRXJyb3IgfSBmcm9tIFwiLi4vVGVybXNcIjtcbmltcG9ydCBNb2RhbCBmcm9tIFwiLi4vTW9kYWxcIjtcbmltcG9ydCBTZXR0aW5nc1N0b3JlIGZyb20gXCIuLi9zZXR0aW5ncy9TZXR0aW5nc1N0b3JlXCI7XG5pbXBvcnQgSW50ZWdyYXRpb25NYW5hZ2VyIGZyb20gXCIuLi9jb21wb25lbnRzL3ZpZXdzL3NldHRpbmdzL0ludGVncmF0aW9uTWFuYWdlclwiO1xuaW1wb3J0IHsgSW50ZWdyYXRpb25NYW5hZ2VycyB9IGZyb20gXCIuL0ludGVncmF0aW9uTWFuYWdlcnNcIjtcbmltcG9ydCB7IHBhcnNlVXJsIH0gZnJvbSBcIi4uL3V0aWxzL1VybFV0aWxzXCI7XG5cbmV4cG9ydCBlbnVtIEtpbmQge1xuICAgIEFjY291bnQgPSBcImFjY291bnRcIixcbiAgICBDb25maWcgPSBcImNvbmZpZ1wiLFxuICAgIEhvbWVzZXJ2ZXIgPSBcImhvbWVzZXJ2ZXJcIixcbn1cblxuZXhwb3J0IGNsYXNzIEludGVncmF0aW9uTWFuYWdlckluc3RhbmNlIHtcbiAgICAvLyBQZXIgdGhlIHNwZWM6IFVJIFVSTCBpcyBvcHRpb25hbC5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBraW5kOiBzdHJpbmcsXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBhcGlVcmw6IHN0cmluZyxcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IHVpVXJsOiBzdHJpbmcgPSBhcGlVcmwsXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBpZD86IHN0cmluZywgLy8gb25seSBhcHBsaWNhYmxlIGluIHNvbWUgY2FzZXNcbiAgICApIHt9XG5cbiAgICBwdWJsaWMgZ2V0IG5hbWUoKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgcGFyc2VkID0gcGFyc2VVcmwodGhpcy51aVVybCk7XG4gICAgICAgIHJldHVybiBwYXJzZWQuaG9zdCA/PyBcIlwiO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgdHJpbW1lZEFwaVVybCgpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBwYXJzZWQgPSBwYXJzZVVybCh0aGlzLmFwaVVybCk7XG4gICAgICAgIHBhcnNlZC5wYXRobmFtZSA9IFwiXCI7XG4gICAgICAgIHJldHVybiBwYXJzZWQudG9TdHJpbmcoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0U2NhbGFyQ2xpZW50KCk6IFNjYWxhckF1dGhDbGllbnQge1xuICAgICAgICByZXR1cm4gbmV3IFNjYWxhckF1dGhDbGllbnQodGhpcy5hcGlVcmwsIHRoaXMudWlVcmwpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBvcGVuKHJvb206IFJvb20sIHNjcmVlbj86IHN0cmluZywgaW50ZWdyYXRpb25JZD86IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBpZiAoIVNldHRpbmdzU3RvcmUuZ2V0VmFsdWUoXCJpbnRlZ3JhdGlvblByb3Zpc2lvbmluZ1wiKSkge1xuICAgICAgICAgICAgcmV0dXJuIEludGVncmF0aW9uTWFuYWdlcnMuc2hhcmVkSW5zdGFuY2UoKS5zaG93RGlzYWJsZWREaWFsb2coKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGRpYWxvZyA9IE1vZGFsLmNyZWF0ZURpYWxvZyhJbnRlZ3JhdGlvbk1hbmFnZXIsIHsgbG9hZGluZzogdHJ1ZSB9LCBcIm14X0ludGVncmF0aW9uTWFuYWdlclwiKTtcblxuICAgICAgICBjb25zdCBjbGllbnQgPSB0aGlzLmdldFNjYWxhckNsaWVudCgpO1xuICAgICAgICBjbGllbnQuc2V0VGVybXNJbnRlcmFjdGlvbkNhbGxiYWNrKChwb2xpY3lJbmZvLCBhZ3JlZWRVcmxzKSA9PiB7XG4gICAgICAgICAgICAvLyBUbyBhdm9pZCB2aXN1YWwgZ2xpdGNoaW5nIG9mIHR3byBtb2RhbHMgc3RhY2tpbmcgYnJpZWZseSwgd2UgY3VzdG9taXNlIHRoZVxuICAgICAgICAgICAgLy8gdGVybXMgZGlhbG9nIHNpemluZyB3aGVuIGl0IHdpbGwgYXBwZWFyIGZvciB0aGUgaW50ZWdyYXRpb24gbWFuYWdlciBzbyB0aGF0XG4gICAgICAgICAgICAvLyBpdCBnZXRzIHRoZSBzYW1lIGJhc2ljIHNpemUgYXMgdGhlIGludGVncmF0aW9uIG1hbmFnZXIncyBvd24gbW9kYWwuXG4gICAgICAgICAgICByZXR1cm4gZGlhbG9nVGVybXNJbnRlcmFjdGlvbkNhbGxiYWNrKHBvbGljeUluZm8sIGFncmVlZFVybHMsIFwibXhfVGVybXNEaWFsb2dfZm9ySW50ZWdyYXRpb25NYW5hZ2VyXCIpO1xuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBuZXdQcm9wczogUGFydGlhbDxDb21wb25lbnRQcm9wczx0eXBlb2YgSW50ZWdyYXRpb25NYW5hZ2VyPj4gPSB7fTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGF3YWl0IGNsaWVudC5jb25uZWN0KCk7XG4gICAgICAgICAgICBpZiAoIWNsaWVudC5oYXNDcmVkZW50aWFscygpKSB7XG4gICAgICAgICAgICAgICAgbmV3UHJvcHNbXCJjb25uZWN0ZWRcIl0gPSBmYWxzZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbmV3UHJvcHNbXCJ1cmxcIl0gPSBjbGllbnQuZ2V0U2NhbGFySW50ZXJmYWNlVXJsRm9yUm9vbShyb29tLCBzY3JlZW4sIGludGVncmF0aW9uSWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIFRlcm1zTm90U2lnbmVkRXJyb3IpIHtcbiAgICAgICAgICAgICAgICBkaWFsb2cuY2xvc2UoKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGxvZ2dlci5lcnJvcihlKTtcbiAgICAgICAgICAgIG5ld1Byb3BzW1wiY29ubmVjdGVkXCJdID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDbG9zZSB0aGUgb2xkIGRpYWxvZyBhbmQgb3BlbiBhIG5ldyBvbmVcbiAgICAgICAgZGlhbG9nLmNsb3NlKCk7XG4gICAgICAgIE1vZGFsLmNyZWF0ZURpYWxvZyhJbnRlZ3JhdGlvbk1hbmFnZXIsIG5ld1Byb3BzLCBcIm14X0ludGVncmF0aW9uTWFuYWdlclwiKTtcbiAgICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFTQSxJQUFBQSxPQUFBLEdBQUFDLE9BQUE7QUFHQSxJQUFBQyxpQkFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsTUFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksTUFBQSxHQUFBRixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUssY0FBQSxHQUFBSCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQU0sbUJBQUEsR0FBQUosc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFPLG9CQUFBLEdBQUFQLE9BQUE7QUFDQSxJQUFBUSxTQUFBLEdBQUFSLE9BQUE7QUFsQkE7QUFDQTtBQUNBO0FBQ0E7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