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;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 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 {
 | 
			
		||||
    constructor() {
 | 
			
		||||
        super("Secret storage access canceled");
 | 
			
		||||
 
 | 
			
		||||
@@ -29,6 +29,7 @@ import {
 | 
			
		||||
    showToast as showUnverifiedSessionsToast,
 | 
			
		||||
} from "./toasts/UnverifiedSessionToast";
 | 
			
		||||
import { privateShouldBeEncrypted } from "./createRoom";
 | 
			
		||||
import { isSecretStorageBeingAccessed } from "./CrossSigningManager";
 | 
			
		||||
 | 
			
		||||
const KEY_BACKUP_POLL_INTERVAL = 5 * 60 * 1000;
 | 
			
		||||
 | 
			
		||||
@@ -170,6 +171,9 @@ export default class DeviceListener {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    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
 | 
			
		||||
        // then do not show the toasts until user is in at least one encrypted room.
 | 
			
		||||
        if (privateShouldBeEncrypted()) return true;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user