You've already forked matrix-react-sdk
mirror of
https://github.com/matrix-org/matrix-react-sdk.git
synced 2025-11-04 11:51:45 +03:00
Avoid adding setup toast in the middle of setup
This improves the experience of going through secret storage setup / reset flows by avoiding intermittent toasts that appear and disappear in the middle of the operation.
This commit is contained in:
@@ -35,6 +35,17 @@ function isCachingAllowed() {
|
|||||||
return secretStorageBeingAccessed;
|
return secretStorageBeingAccessed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This can be used by other components to check if secret storage access is in
|
||||||
|
* progress, so that we can e.g. avoid intermittently showing toasts during
|
||||||
|
* secret storage setup.
|
||||||
|
*
|
||||||
|
* @returns {bool}
|
||||||
|
*/
|
||||||
|
export function isSecretStorageBeingAccessed() {
|
||||||
|
return secretStorageBeingAccessed;
|
||||||
|
}
|
||||||
|
|
||||||
export class AccessCancelledError extends Error {
|
export class AccessCancelledError extends Error {
|
||||||
constructor() {
|
constructor() {
|
||||||
super("Secret storage access canceled");
|
super("Secret storage access canceled");
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ import {
|
|||||||
showToast as showUnverifiedSessionsToast,
|
showToast as showUnverifiedSessionsToast,
|
||||||
} from "./toasts/UnverifiedSessionToast";
|
} from "./toasts/UnverifiedSessionToast";
|
||||||
import { privateShouldBeEncrypted } from "./createRoom";
|
import { privateShouldBeEncrypted } from "./createRoom";
|
||||||
|
import { isSecretStorageBeingAccessed } from "./CrossSigningManager";
|
||||||
|
|
||||||
const KEY_BACKUP_POLL_INTERVAL = 5 * 60 * 1000;
|
const KEY_BACKUP_POLL_INTERVAL = 5 * 60 * 1000;
|
||||||
|
|
||||||
@@ -170,6 +171,9 @@ export default class DeviceListener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private shouldShowSetupEncryptionToast() {
|
private shouldShowSetupEncryptionToast() {
|
||||||
|
// If we're in the middle of a secret storage operation, we're likely
|
||||||
|
// modifying the state involved here, so don't add new toasts to setup.
|
||||||
|
if (isSecretStorageBeingAccessed()) return false;
|
||||||
// In a default configuration, show the toasts. If the well-known config causes e2ee default to be false
|
// In a default configuration, show the toasts. If the well-known config causes e2ee default to be false
|
||||||
// then do not show the toasts until user is in at least one encrypted room.
|
// then do not show the toasts until user is in at least one encrypted room.
|
||||||
if (privateShouldBeEncrypted()) return true;
|
if (privateShouldBeEncrypted()) return true;
|
||||||
|
|||||||
Reference in New Issue
Block a user