From 228aee97e6ae51f4b58d73f62b1145dc425435ad Mon Sep 17 00:00:00 2001 From: Rafeek-Khoudare Date: Tue, 15 Jul 2025 09:02:42 +0300 Subject: [PATCH] add loading indicator and state for deleting acount --- .../widgets/securty/bloc/security_bloc.dart | 1 + .../delete_account/delete_account_page.dart | 51 +++++++++++-------- 2 files changed, 32 insertions(+), 20 deletions(-) diff --git a/lib/features/menu/view/widgets/securty/bloc/security_bloc.dart b/lib/features/menu/view/widgets/securty/bloc/security_bloc.dart index 5048a0f..891d935 100644 --- a/lib/features/menu/view/widgets/securty/bloc/security_bloc.dart +++ b/lib/features/menu/view/widgets/securty/bloc/security_bloc.dart @@ -198,6 +198,7 @@ class SecurityBloc extends Bloc { Future onDeleteAccountEvent( DeleteAccountEvent event, Emitter emit) async { + emit(LoadingForgetState()); try { await AuthenticationAPI.deleteAccount(); emit(ChangedPassState()); diff --git a/lib/features/menu/view/widgets/securty/delete_account/delete_account_page.dart b/lib/features/menu/view/widgets/securty/delete_account/delete_account_page.dart index ee9b65a..b4b1d04 100644 --- a/lib/features/menu/view/widgets/securty/delete_account/delete_account_page.dart +++ b/lib/features/menu/view/widgets/securty/delete_account/delete_account_page.dart @@ -37,27 +37,38 @@ class DeleteAccountPage extends StatelessWidget { SizedBox( height: 10, ), - ElevatedButton( - onPressed: () { - context.read().add(DeleteAccountEvent()); + BlocBuilder( + builder: (context, state) { + if (state is LoadingForgetState) { + return Center( + child: CircularProgressIndicator(), + ); + } + return ElevatedButton( + onPressed: () { + context + .read() + .add(DeleteAccountEvent()); + }, + style: ElevatedButton.styleFrom( + backgroundColor: ColorsManager.blueColor, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(12), + ), + fixedSize: Size( + MediaQuery.sizeOf(context).width * 0.8, + 40, + ), + ), + child: Text( + 'Delete Account', + style: TextStyle( + fontSize: 16, + fontWeight: FontWeight.w700, + color: ColorsManager.onPrimaryColor), + ), + ); }, - style: ElevatedButton.styleFrom( - backgroundColor: ColorsManager.blueColor, - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(12), - ), - fixedSize: Size( - MediaQuery.sizeOf(context).width * 0.8, - 40, - ), - ), - child: Text( - 'Delete Account', - style: TextStyle( - fontSize: 16, - fontWeight: FontWeight.w700, - color: ColorsManager.onPrimaryColor), - ), ) ], ),