Avoid visual glitch when terms appear for IM
This avoids a visual glitch where the Integration Manager portal would briefly appear, but then be replaced by a smaller Terms dialog when there's something to agree to. To resolve this minimal code churn, this cheats a bit and customises the size of the terms dialog to match the IM portal modal when terms are shown for IM purposes. Fixes https://github.com/vector-im/riot-web/issues/10386
This commit is contained in:
parent
2eb8a8879b
commit
39d5aa7cf4
5 changed files with 49 additions and 19 deletions
|
@ -17,7 +17,7 @@ limitations under the License.
|
|||
import sdk from "../index";
|
||||
import ScalarAuthClient from '../ScalarAuthClient';
|
||||
import Modal from '../Modal';
|
||||
import { TermsNotSignedError } from '../Terms';
|
||||
import { TermsNotSignedError, dialogTermsInteractionCallback } from '../Terms';
|
||||
|
||||
export async function showIntegrationsManager(opts) {
|
||||
const IntegrationsManager = sdk.getComponent("views.settings.IntegrationsManager");
|
||||
|
@ -38,6 +38,7 @@ export async function showIntegrationsManager(opts) {
|
|||
}
|
||||
|
||||
const scalarClient = new ScalarAuthClient();
|
||||
scalarClient.setTermsInteractionCallback(integrationsTermsInteractionCallback);
|
||||
try {
|
||||
await scalarClient.connect();
|
||||
if (!scalarClient.hasCredentials()) {
|
||||
|
@ -63,3 +64,16 @@ export async function showIntegrationsManager(opts) {
|
|||
close();
|
||||
Modal.createTrackedDialog('Integrations Manager', '', IntegrationsManager, props, "mx_IntegrationsManager");
|
||||
}
|
||||
|
||||
/*
|
||||
* To avoid visual glitching of two modals stacking briefly, we customise the
|
||||
* terms dialog sizing when it will appear for the integrations manager so that
|
||||
* it gets the same basic size as the IM's own modal.
|
||||
*/
|
||||
function integrationsTermsInteractionCallback(policiesAndServicePairs, agreedUrls) {
|
||||
return dialogTermsInteractionCallback(
|
||||
policiesAndServicePairs,
|
||||
agreedUrls,
|
||||
"mx_TermsDialog_forIntegrationsManager",
|
||||
);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue