diff --git a/lib/logic/bloc/backups/backups_bloc.dart b/lib/logic/bloc/backups/backups_bloc.dart index c5e2c43f..5c0e9e64 100644 --- a/lib/logic/bloc/backups/backups_bloc.dart +++ b/lib/logic/bloc/backups/backups_bloc.dart @@ -366,6 +366,14 @@ class BackupsBloc extends Bloc { ) async { final currentState = state; if (currentState is BackupsInitialized) { + // Optimistically remove the snapshot from the list + getIt().apiData.backups.data = + getIt() + .apiData + .backups + .data + ?.where((final Backup backup) => backup.id != event.backupId) + .toList(); emit(BackupsBusy.fromState(currentState)); final GenericResult result = await getIt().api.forgetSnapshot( @@ -377,16 +385,8 @@ class BackupsBloc extends Bloc { } else if (result.data == false) { getIt() .showSnackBar('backup.forget_snapshot_error'.tr()); - } else { - final backups = getIt().apiData.backups.data; - if (backups != null) { - getIt().apiData.backups.data = backups - .where((final Backup backup) => backup.id != event.backupId) - .toList(); - } } emit(currentState); - getIt().emitData(); } }