From c31f1262a2ee6e51ec7b4c15f49d4c5f9c441969 Mon Sep 17 00:00:00 2001 From: mohammad Date: Mon, 16 Dec 2024 18:59:56 +0300 Subject: [PATCH] delete_dialog --- .../users_page/bloc/users_bloc.dart | 18 ++---- .../users_page/view/delete_user_dialog.dart | 63 +++++++++++++++++++ 2 files changed, 69 insertions(+), 12 deletions(-) create mode 100644 lib/pages/roles_and_permission/users_page/view/delete_user_dialog.dart diff --git a/lib/pages/roles_and_permission/users_page/bloc/users_bloc.dart b/lib/pages/roles_and_permission/users_page/bloc/users_bloc.dart index 72c85bad..ad5e49ce 100644 --- a/lib/pages/roles_and_permission/users_page/bloc/users_bloc.dart +++ b/lib/pages/roles_and_permission/users_page/bloc/users_bloc.dart @@ -7,6 +7,7 @@ import 'package:syncrow_web/pages/roles_and_permission/users_page/model/tree_nod import 'package:syncrow_web/pages/spaces_management/model/community_model.dart'; import 'package:syncrow_web/pages/spaces_management/model/space_model.dart'; import 'package:syncrow_web/services/space_mana_api.dart'; + class UsersBloc extends Bloc { UsersBloc() : super(UsersInitial()) { on(_getUsers); @@ -103,9 +104,7 @@ class UsersBloc extends Bloc { emit(UsersLoadingState()); isCompleteBasics = firstNameController.text.isNotEmpty && lastNameController.text.isNotEmpty && - emailController.text.isNotEmpty && - phoneController.text.isNotEmpty && - jobTitleController.text.isNotEmpty; + emailController.text.isNotEmpty; emit(ChangeStatusSteps()); return isCompleteBasics; } @@ -115,8 +114,7 @@ class UsersBloc extends Bloc { emit(UsersLoadingState()); try { - List selectedIds = - getSelectedIds(updatedCommunities); + List selectedIds = getSelectedIds(updatedCommunities); isCompleteSpaces = selectedIds.isNotEmpty; } catch (e) { emit(ErrorState('Error while retrieving selected IDs: $e')); @@ -130,8 +128,6 @@ class UsersBloc extends Bloc { return true; } - - Future> _fetchSpacesForCommunity( String communityUuid) async { return await CommunitySpaceManagementApi().getSpaceHierarchy(communityUuid); @@ -204,7 +200,6 @@ class UsersBloc extends Bloc { bool _searchAndHighlightNodes(List nodes, String searchTerm) { bool anyMatch = false; - for (var node in nodes) { bool isMatch = node.title.toLowerCase().contains(searchTerm.toLowerCase()); @@ -218,16 +213,15 @@ class UsersBloc extends Bloc { List selectedIds = []; List getSelectedIds(List nodes) { - List selectedIds = []; + List selectedIds = []; for (var node in nodes) { if (node.isChecked) { - selectedIds.add(node.uuid); + selectedIds.add(node.uuid); } if (node.children.isNotEmpty) { selectedIds.addAll(getSelectedIds(node.children)); } } - return selectedIds; + return selectedIds; } - } diff --git a/lib/pages/roles_and_permission/users_page/view/delete_user_dialog.dart b/lib/pages/roles_and_permission/users_page/view/delete_user_dialog.dart new file mode 100644 index 00000000..090d4fe3 --- /dev/null +++ b/lib/pages/roles_and_permission/users_page/view/delete_user_dialog.dart @@ -0,0 +1,63 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/widgets.dart'; +import 'package:flutter_bloc/flutter_bloc.dart'; +import 'package:syncrow_web/pages/roles_and_permission/users_page/bloc/users_bloc.dart'; +import 'package:syncrow_web/pages/roles_and_permission/users_page/bloc/users_status.dart'; +import 'package:syncrow_web/utils/color_manager.dart'; + +class AddNewUserDialog extends StatefulWidget { + const AddNewUserDialog({super.key}); + + @override + _AddNewUserDialogState createState() => _AddNewUserDialogState(); +} + +class _AddNewUserDialogState extends State { + int currentStep = 1; + + @override + Widget build(BuildContext context) { + return BlocProvider( + create: (BuildContext context) => UsersBloc(), + child: BlocConsumer( + listener: (context, state) {}, + builder: (context, state) { + final _blocRole = BlocProvider.of(context); + + return Dialog( + child: Container( + decoration: const BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.all(Radius.circular(20))), + child: const Column( + children: [ + Padding( + padding: EdgeInsets.all(8.0), + child: SizedBox( + child: Text( + "Delete User", + style: TextStyle( + color: ColorsManager.red, + fontSize: 18, + fontWeight: FontWeight.bold), + ), + ), + ), + Divider(), + Expanded( + child: Text( + "Are you sure you want to delete this user?", + textAlign: TextAlign.center, + )), + Row( + children: [ + Expanded(child: Text('Cancel')), + Expanded(child: Text('Delete')), + ], + ) + ], + ), + )); + })); + } +}