From b46c53674b57b0e02a5591e8dac92423e739ab03 Mon Sep 17 00:00:00 2001 From: NaiJi Date: Thu, 15 Jun 2023 13:48:23 -0300 Subject: [PATCH] feat: Implement new dialogue stub onChange --- .../server_installation_cubit.dart | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/lib/logic/cubit/server_installation/server_installation_cubit.dart b/lib/logic/cubit/server_installation/server_installation_cubit.dart index 6fa7d569..50c6b09a 100644 --- a/lib/logic/cubit/server_installation/server_installation_cubit.dart +++ b/lib/logic/cubit/server_installation/server_installation_cubit.dart @@ -19,6 +19,7 @@ import 'package:selfprivacy/logic/models/server_basic_info.dart'; import 'package:selfprivacy/logic/cubit/server_installation/server_installation_repository.dart'; import 'package:selfprivacy/logic/models/server_provider_location.dart'; import 'package:selfprivacy/logic/models/server_type.dart'; +import 'package:selfprivacy/ui/helpers/modals.dart'; export 'package:provider/provider.dart'; @@ -723,6 +724,33 @@ class ServerInstallationCubit extends Cubit { @override void onChange(final Change change) { + if (change.currentState.installationDialoguePopUp != null && + change.currentState.installationDialoguePopUp != + state.installationDialoguePopUp) { + final branching = change.currentState.installationDialoguePopUp; + showPopUpAlert( + alertTitle: branching!.title, + description: branching.description, + actionButtonTitle: branching.choices[1].title, + actionButtonOnPressed: () async { + final branchingResult = await branching.choices[1].callback!(); + emit( + (state as ServerInstallationNotFinished).copyWith( + installationDialoguePopUp: branchingResult.data, + ), + ); + }, + cancelButtonTitle: branching.choices[0].title, + cancelButtonOnPressed: () async { + final branchingResult = await branching.choices[0].callback!(); + emit( + (state as ServerInstallationNotFinished).copyWith( + installationDialoguePopUp: branchingResult.data, + ), + ); + }, + ); + } super.onChange(change); }