From e330f71b63aaf15136375dfee6c52d494933bd06 Mon Sep 17 00:00:00 2001 From: Inex Code Date: Wed, 31 Jan 2024 18:06:22 +0400 Subject: [PATCH] refactor: Optimistic state update when forgetting a snapshot --- lib/logic/bloc/backups/backups_bloc.dart | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) 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(); } }