|  |  |  | @ -1,7 +1,14 @@ | 
		
	
		
			
				|  |  |  |  | import 'dart:collection'; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | import 'package:flutter/cupertino.dart'; | 
		
	
		
			
				|  |  |  |  | import 'package:flutter/material.dart'; | 
		
	
		
			
				|  |  |  |  | import 'package:mohem_flutter_app/api/worklist/worklist_api_client.dart'; | 
		
	
		
			
				|  |  |  |  | import 'package:mohem_flutter_app/classes/colors.dart'; | 
		
	
		
			
				|  |  |  |  | import 'package:mohem_flutter_app/classes/utils.dart'; | 
		
	
		
			
				|  |  |  |  | import 'package:mohem_flutter_app/extensions/string_extensions.dart'; | 
		
	
		
			
				|  |  |  |  | import 'package:mohem_flutter_app/extensions/int_extensions.dart'; | 
		
	
		
			
				|  |  |  |  | import 'package:mohem_flutter_app/models/worklist/replacement_list_model.dart'; | 
		
	
		
			
				|  |  |  |  | import 'package:mohem_flutter_app/ui/work_list/sheets/search_options_sheet.dart'; | 
		
	
		
			
				|  |  |  |  | import 'package:mohem_flutter_app/ui/work_list/sheets/selected_item_sheet.dart'; | 
		
	
		
			
				|  |  |  |  | import 'package:mohem_flutter_app/widgets/bottom_sheet.dart'; | 
		
	
		
			
				|  |  |  |  | import 'package:mohem_flutter_app/widgets/button/default_button.dart'; | 
		
	
	
		
			
				
					|  |  |  | @ -10,21 +17,91 @@ import 'package:mohem_flutter_app/widgets/input_widget.dart'; | 
		
	
		
			
				|  |  |  |  | import 'package:mohem_flutter_app/widgets/radio/show_radio.dart'; | 
		
	
		
			
				|  |  |  |  | import 'package:mohem_flutter_app/extensions/widget_extensions.dart'; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | class DelegateSheet extends StatelessWidget { | 
		
	
		
			
				|  |  |  |  | import '../../../models/generic_response_model.dart'; | 
		
	
		
			
				|  |  |  |  | import '../../../models/get_action_history_list_model.dart'; | 
		
	
		
			
				|  |  |  |  | import '../../../models/worklist/get_favorite_replacements_model.dart'; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | class DelegateSheet extends StatefulWidget { | 
		
	
		
			
				|  |  |  |  |   int? notificationID; | 
		
	
		
			
				|  |  |  |  |   List<GetActionHistoryList>? actionHistoryList; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |   DelegateSheet({this.notificationID, this.actionHistoryList}); | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |   @override | 
		
	
		
			
				|  |  |  |  |   State<DelegateSheet> createState() => _DelegateSheetState(); | 
		
	
		
			
				|  |  |  |  | } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | class _DelegateSheetState extends State<DelegateSheet> { | 
		
	
		
			
				|  |  |  |  |   TextEditingController username = TextEditingController(); | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |   bool isNeedEnableTextField = false; | 
		
	
		
			
				|  |  |  |  |   String? selectedFavLetter; | 
		
	
		
			
				|  |  |  |  |   String selectedType = "Workflow"; | 
		
	
		
			
				|  |  |  |  |   String inputRes = ""; | 
		
	
		
			
				|  |  |  |  |   List<String>? favLetters; | 
		
	
		
			
				|  |  |  |  |   List<GetFavoriteReplacements>? favUsersList; | 
		
	
		
			
				|  |  |  |  |   List<ReplacementList>? replacementList; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |   Future fetchFavLetters({bool isNeedLoading = true}) async { | 
		
	
		
			
				|  |  |  |  |     favLetters = []; | 
		
	
		
			
				|  |  |  |  |     if (isNeedLoading) Utils.showLoading(context); | 
		
	
		
			
				|  |  |  |  |     List<GetFavoriteReplacements>? favList = await WorkListApiClient().getFavoriteReplacementWithoutImage(); | 
		
	
		
			
				|  |  |  |  |     List<String> result = []; | 
		
	
		
			
				|  |  |  |  |     favList!.forEach((element) { | 
		
	
		
			
				|  |  |  |  |       result.add(element.employeeDisplayName![0]); | 
		
	
		
			
				|  |  |  |  |     }); | 
		
	
		
			
				|  |  |  |  |     favLetters = LinkedHashSet<String>.from(result).toList(); | 
		
	
		
			
				|  |  |  |  |     if (isNeedLoading) Utils.hideLoading(context); | 
		
	
		
			
				|  |  |  |  |     setState(() { | 
		
	
		
			
				|  |  |  |  |       favLetters!.sort((a, b) { | 
		
	
		
			
				|  |  |  |  |         return a.toLowerCase().compareTo(b.toLowerCase()); | 
		
	
		
			
				|  |  |  |  |       }); | 
		
	
		
			
				|  |  |  |  |     }); | 
		
	
		
			
				|  |  |  |  |     return null; | 
		
	
		
			
				|  |  |  |  |   } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |   Future fetchFavUsersList({bool isNeedLoading = true}) async { | 
		
	
		
			
				|  |  |  |  |     if (isNeedLoading) Utils.showLoading(context); | 
		
	
		
			
				|  |  |  |  |     favUsersList = await WorkListApiClient().getFavoriteReplacementWithImage(selectedFavLetter ?? ""); | 
		
	
		
			
				|  |  |  |  |     if (isNeedLoading) Utils.hideLoading(context); | 
		
	
		
			
				|  |  |  |  |     setState(() {}); | 
		
	
		
			
				|  |  |  |  |     return null; | 
		
	
		
			
				|  |  |  |  |   } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |   fetchChangeFav({required String email, required String employeName, required String image, required String userName, bool isFav = false, bool isNeedToRefresh = false}) async { | 
		
	
		
			
				|  |  |  |  |     Utils.showLoading(context); | 
		
	
		
			
				|  |  |  |  |     favLetters = null; | 
		
	
		
			
				|  |  |  |  |     selectedFavLetter = null; | 
		
	
		
			
				|  |  |  |  |     GenericResponseModel model = await WorkListApiClient().changeFavoriteReplacements( | 
		
	
		
			
				|  |  |  |  |       email: email, | 
		
	
		
			
				|  |  |  |  |       employeName: employeName, | 
		
	
		
			
				|  |  |  |  |       image: image, | 
		
	
		
			
				|  |  |  |  |       userName: userName, | 
		
	
		
			
				|  |  |  |  |       isFav: isFav, | 
		
	
		
			
				|  |  |  |  |     ); | 
		
	
		
			
				|  |  |  |  |     if (isNeedToRefresh) { | 
		
	
		
			
				|  |  |  |  |       await fetchFavLetters(isNeedLoading: false); | 
		
	
		
			
				|  |  |  |  |       if (favLetters != null) await fetchFavUsersList(isNeedLoading: false); | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     Utils.hideLoading(context); | 
		
	
		
			
				|  |  |  |  |     setState(() {}); | 
		
	
		
			
				|  |  |  |  |   } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |   Future fetchUserByInput({bool isNeedLoading = true}) async { | 
		
	
		
			
				|  |  |  |  |     if (isNeedLoading) Utils.showLoading(context); | 
		
	
		
			
				|  |  |  |  |     replacementList = await WorkListApiClient().searchUserByInput( | 
		
	
		
			
				|  |  |  |  |       userId: selectedType == "Employee ID" ? inputRes : "", | 
		
	
		
			
				|  |  |  |  |       userName: selectedType == "Employee Name" ? inputRes : "", | 
		
	
		
			
				|  |  |  |  |       email: selectedType == "Employee Email" ? inputRes : "", | 
		
	
		
			
				|  |  |  |  |     ); | 
		
	
		
			
				|  |  |  |  |     if (isNeedLoading) Utils.hideLoading(context); | 
		
	
		
			
				|  |  |  |  |     setState(() {}); | 
		
	
		
			
				|  |  |  |  |     return null; | 
		
	
		
			
				|  |  |  |  |   } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |   @override | 
		
	
		
			
				|  |  |  |  |   Widget build(BuildContext context) { | 
		
	
		
			
				|  |  |  |  |     List<String> related = [ | 
		
	
		
			
				|  |  |  |  |       "Amjad Khan", | 
		
	
		
			
				|  |  |  |  |       "Munahi Nasser", | 
		
	
		
			
				|  |  |  |  |     ]; | 
		
	
		
			
				|  |  |  |  |     List<String> favorites = [ | 
		
	
		
			
				|  |  |  |  |       "Amjad Khan", | 
		
	
		
			
				|  |  |  |  |       "Muhammad Ahmed", | 
		
	
		
			
				|  |  |  |  |       "Majid Ali", | 
		
	
		
			
				|  |  |  |  |       "Faris Mahmoud", | 
		
	
		
			
				|  |  |  |  |     ]; | 
		
	
		
			
				|  |  |  |  |     return Container( | 
		
	
		
			
				|  |  |  |  |       width: double.infinity, | 
		
	
		
			
				|  |  |  |  |       height: MediaQuery.of(context).size.height - 80, | 
		
	
	
		
			
				
					|  |  |  | @ -40,78 +117,216 @@ class DelegateSheet extends StatelessWidget { | 
		
	
		
			
				|  |  |  |  |                     "Delegate".toText24(), | 
		
	
		
			
				|  |  |  |  |                     24.height, | 
		
	
		
			
				|  |  |  |  |                     "Search".toText16(), | 
		
	
		
			
				|  |  |  |  |                     12.height, | 
		
	
		
			
				|  |  |  |  |                     Row( | 
		
	
		
			
				|  |  |  |  |                     20.height, | 
		
	
		
			
				|  |  |  |  |                     Column( | 
		
	
		
			
				|  |  |  |  |                       crossAxisAlignment: CrossAxisAlignment.end, | 
		
	
		
			
				|  |  |  |  |                       children: [ | 
		
	
		
			
				|  |  |  |  |                         Expanded( | 
		
	
		
			
				|  |  |  |  |                           flex: 2, | 
		
	
		
			
				|  |  |  |  |                           child: ShowRadio( | 
		
	
		
			
				|  |  |  |  |                               title: "Name", value: "Name", groupValue: "Name"), | 
		
	
		
			
				|  |  |  |  |                         ), | 
		
	
		
			
				|  |  |  |  |                         Expanded( | 
		
	
		
			
				|  |  |  |  |                           flex: 3, | 
		
	
		
			
				|  |  |  |  |                           child: ShowRadio( | 
		
	
		
			
				|  |  |  |  |                               title: "User Name", | 
		
	
		
			
				|  |  |  |  |                               value: "User Name", | 
		
	
		
			
				|  |  |  |  |                               groupValue: "Name"), | 
		
	
		
			
				|  |  |  |  |                         Container( | 
		
	
		
			
				|  |  |  |  |                           padding: EdgeInsets.only(left: 8, right: 4, top: 6, bottom: 6), | 
		
	
		
			
				|  |  |  |  |                           decoration: BoxDecoration( | 
		
	
		
			
				|  |  |  |  |                             borderRadius: BorderRadius.circular(15), | 
		
	
		
			
				|  |  |  |  |                             color: Colors.transparent, | 
		
	
		
			
				|  |  |  |  |                             border: Border.all( | 
		
	
		
			
				|  |  |  |  |                               color: Color(0xffefefef), | 
		
	
		
			
				|  |  |  |  |                               width: 1, | 
		
	
		
			
				|  |  |  |  |                             ), | 
		
	
		
			
				|  |  |  |  |                           ), | 
		
	
		
			
				|  |  |  |  |                           child: Row( | 
		
	
		
			
				|  |  |  |  |                             children: [ | 
		
	
		
			
				|  |  |  |  |                               Expanded( | 
		
	
		
			
				|  |  |  |  |                                 child: InputWidget( | 
		
	
		
			
				|  |  |  |  |                                   "Search By " + selectedType, | 
		
	
		
			
				|  |  |  |  |                                   "", | 
		
	
		
			
				|  |  |  |  |                                   username, | 
		
	
		
			
				|  |  |  |  |                                   isEnableBorder: false, | 
		
	
		
			
				|  |  |  |  |                                   horizontalPadding: 4, | 
		
	
		
			
				|  |  |  |  |                                   verticalPadding: 3, | 
		
	
		
			
				|  |  |  |  |                                   isInputTypeNum: selectedType == "Employee ID" ? true : false, | 
		
	
		
			
				|  |  |  |  |                                   isEnable: isNeedEnableTextField, | 
		
	
		
			
				|  |  |  |  |                                   onChange: (v) { | 
		
	
		
			
				|  |  |  |  |                                     inputRes = v; | 
		
	
		
			
				|  |  |  |  |                                   }, | 
		
	
		
			
				|  |  |  |  |                                 ), | 
		
	
		
			
				|  |  |  |  |                               ), | 
		
	
		
			
				|  |  |  |  |                               Container( | 
		
	
		
			
				|  |  |  |  |                                 height: 24, | 
		
	
		
			
				|  |  |  |  |                                 width: 1, | 
		
	
		
			
				|  |  |  |  |                                 color: Color(0xffE5E5E5), | 
		
	
		
			
				|  |  |  |  |                               ), | 
		
	
		
			
				|  |  |  |  |                               Container( | 
		
	
		
			
				|  |  |  |  |                                 padding: EdgeInsets.all(8), | 
		
	
		
			
				|  |  |  |  |                                 child: Row( | 
		
	
		
			
				|  |  |  |  |                                   children: [ | 
		
	
		
			
				|  |  |  |  |                                     Text( | 
		
	
		
			
				|  |  |  |  |                                       selectedType, | 
		
	
		
			
				|  |  |  |  |                                       style: const TextStyle( | 
		
	
		
			
				|  |  |  |  |                                         fontSize: 11, | 
		
	
		
			
				|  |  |  |  |                                         fontWeight: FontWeight.w600, | 
		
	
		
			
				|  |  |  |  |                                         color: Color(0xff2B353E), | 
		
	
		
			
				|  |  |  |  |                                         letterSpacing: -0.44, | 
		
	
		
			
				|  |  |  |  |                                       ), | 
		
	
		
			
				|  |  |  |  |                                     ), | 
		
	
		
			
				|  |  |  |  |                                     4.width, | 
		
	
		
			
				|  |  |  |  |                                     Icon( | 
		
	
		
			
				|  |  |  |  |                                       Icons.keyboard_arrow_down, | 
		
	
		
			
				|  |  |  |  |                                       color: Colors.black, | 
		
	
		
			
				|  |  |  |  |                                       size: 16, | 
		
	
		
			
				|  |  |  |  |                                     ), | 
		
	
		
			
				|  |  |  |  |                                   ], | 
		
	
		
			
				|  |  |  |  |                                 ), | 
		
	
		
			
				|  |  |  |  |                               ).onPress(() { | 
		
	
		
			
				|  |  |  |  |                                 showMyBottomSheet( | 
		
	
		
			
				|  |  |  |  |                                   context, | 
		
	
		
			
				|  |  |  |  |                                   child: SearchOptionsSheet( | 
		
	
		
			
				|  |  |  |  |                                     selectedType, | 
		
	
		
			
				|  |  |  |  |                                     onSelection: (String value) { | 
		
	
		
			
				|  |  |  |  |                                       selectedType = value; | 
		
	
		
			
				|  |  |  |  |                                       if (value == "Workflow") { | 
		
	
		
			
				|  |  |  |  |                                         setState(() { | 
		
	
		
			
				|  |  |  |  |                                           isNeedEnableTextField = false; | 
		
	
		
			
				|  |  |  |  |                                           selectedFavLetter = null; | 
		
	
		
			
				|  |  |  |  |                                           favLetters = null; | 
		
	
		
			
				|  |  |  |  |                                           favUsersList = null; | 
		
	
		
			
				|  |  |  |  |                                         }); | 
		
	
		
			
				|  |  |  |  |                                       } else if (value == "Favorites") { | 
		
	
		
			
				|  |  |  |  |                                         isNeedEnableTextField = false; | 
		
	
		
			
				|  |  |  |  |                                         fetchFavLetters(); | 
		
	
		
			
				|  |  |  |  |                                       } else { | 
		
	
		
			
				|  |  |  |  |                                         setState(() { | 
		
	
		
			
				|  |  |  |  |                                           isNeedEnableTextField = true; | 
		
	
		
			
				|  |  |  |  |                                           selectedFavLetter = null; | 
		
	
		
			
				|  |  |  |  |                                           favLetters = null; | 
		
	
		
			
				|  |  |  |  |                                           favUsersList = null; | 
		
	
		
			
				|  |  |  |  |                                         }); | 
		
	
		
			
				|  |  |  |  |                                       } | 
		
	
		
			
				|  |  |  |  |                                     }, | 
		
	
		
			
				|  |  |  |  |                                   ), | 
		
	
		
			
				|  |  |  |  |                                 ); | 
		
	
		
			
				|  |  |  |  |                               }), | 
		
	
		
			
				|  |  |  |  |                             ], | 
		
	
		
			
				|  |  |  |  |                           ), | 
		
	
		
			
				|  |  |  |  |                         ), | 
		
	
		
			
				|  |  |  |  |                         if (isNeedEnableTextField) | 
		
	
		
			
				|  |  |  |  |                           FlatButton( | 
		
	
		
			
				|  |  |  |  |                             onPressed: () { | 
		
	
		
			
				|  |  |  |  |                               fetchUserByInput(); | 
		
	
		
			
				|  |  |  |  |                             }, | 
		
	
		
			
				|  |  |  |  |                             child: Text( | 
		
	
		
			
				|  |  |  |  |                               "Search", | 
		
	
		
			
				|  |  |  |  |                               style: TextStyle( | 
		
	
		
			
				|  |  |  |  |                                 color: Colors.blue, | 
		
	
		
			
				|  |  |  |  |                                 decoration: TextDecoration.underline, | 
		
	
		
			
				|  |  |  |  |                               ), | 
		
	
		
			
				|  |  |  |  |                             ), | 
		
	
		
			
				|  |  |  |  |                           ) | 
		
	
		
			
				|  |  |  |  |                       ], | 
		
	
		
			
				|  |  |  |  |                     ), | 
		
	
		
			
				|  |  |  |  |                     if (!isNeedEnableTextField) 12.height, | 
		
	
		
			
				|  |  |  |  |                     Row( | 
		
	
		
			
				|  |  |  |  |                       children: [ | 
		
	
		
			
				|  |  |  |  |                         Expanded( | 
		
	
		
			
				|  |  |  |  |                           flex: 2, | 
		
	
		
			
				|  |  |  |  |                           child: ShowRadio( | 
		
	
		
			
				|  |  |  |  |                               title: "Email", | 
		
	
		
			
				|  |  |  |  |                               value: "Email", | 
		
	
		
			
				|  |  |  |  |                               groupValue: "Name"), | 
		
	
		
			
				|  |  |  |  |                           child: Container( | 
		
	
		
			
				|  |  |  |  |                             width: double.infinity, | 
		
	
		
			
				|  |  |  |  |                             child: selectedFavLetter == null && favLetters != null | 
		
	
		
			
				|  |  |  |  |                                 ? Container( | 
		
	
		
			
				|  |  |  |  |                                     width: double.infinity, | 
		
	
		
			
				|  |  |  |  |                                     alignment: Alignment.center, | 
		
	
		
			
				|  |  |  |  |                                     child: "Please select letter to see Fav results".toText12(), | 
		
	
		
			
				|  |  |  |  |                                   ) | 
		
	
		
			
				|  |  |  |  |                                 : favUsersList != null | 
		
	
		
			
				|  |  |  |  |                                     ? ListView.separated( | 
		
	
		
			
				|  |  |  |  |                                         itemBuilder: (context, index) { | 
		
	
		
			
				|  |  |  |  |                                           return showFavUserItem(favUsersList![index]); | 
		
	
		
			
				|  |  |  |  |                                         }, | 
		
	
		
			
				|  |  |  |  |                                         separatorBuilder: (context, index) { | 
		
	
		
			
				|  |  |  |  |                                           return Container( | 
		
	
		
			
				|  |  |  |  |                                             color: MyColors.borderColor, | 
		
	
		
			
				|  |  |  |  |                                             width: double.infinity, | 
		
	
		
			
				|  |  |  |  |                                             height: 1, | 
		
	
		
			
				|  |  |  |  |                                             margin: EdgeInsets.only(top: 8, bottom: 8), | 
		
	
		
			
				|  |  |  |  |                                           ).onPress(() {}); | 
		
	
		
			
				|  |  |  |  |                                         }, | 
		
	
		
			
				|  |  |  |  |                                         physics: NeverScrollableScrollPhysics(), | 
		
	
		
			
				|  |  |  |  |                                         shrinkWrap: true, | 
		
	
		
			
				|  |  |  |  |                                         itemCount: favUsersList!.length, | 
		
	
		
			
				|  |  |  |  |                                         padding: EdgeInsets.only(top: 8, bottom: 8), | 
		
	
		
			
				|  |  |  |  |                                       ) | 
		
	
		
			
				|  |  |  |  |                                     : isNeedEnableTextField && replacementList == null | 
		
	
		
			
				|  |  |  |  |                                         ? Container( | 
		
	
		
			
				|  |  |  |  |                                             width: double.infinity, | 
		
	
		
			
				|  |  |  |  |                                             alignment: Alignment.center, | 
		
	
		
			
				|  |  |  |  |                                             child: "Search User".toText12(), | 
		
	
		
			
				|  |  |  |  |                                           ) | 
		
	
		
			
				|  |  |  |  |                                         : isNeedEnableTextField && replacementList!.length == 0 | 
		
	
		
			
				|  |  |  |  |                                             ? Container( | 
		
	
		
			
				|  |  |  |  |                                                 width: double.infinity, | 
		
	
		
			
				|  |  |  |  |                                                 alignment: Alignment.center, | 
		
	
		
			
				|  |  |  |  |                                                 child: "No Data Found".toText12(), | 
		
	
		
			
				|  |  |  |  |                                               ) | 
		
	
		
			
				|  |  |  |  |                                             : isNeedEnableTextField | 
		
	
		
			
				|  |  |  |  |                                                 ? ListView.separated( | 
		
	
		
			
				|  |  |  |  |                                                     itemBuilder: (context, index) { | 
		
	
		
			
				|  |  |  |  |                                                       return showInputUserItem(replacementList![index]); | 
		
	
		
			
				|  |  |  |  |                                                     }, | 
		
	
		
			
				|  |  |  |  |                                                     separatorBuilder: (context, index) { | 
		
	
		
			
				|  |  |  |  |                                                       return Container( | 
		
	
		
			
				|  |  |  |  |                                                         color: MyColors.borderColor, | 
		
	
		
			
				|  |  |  |  |                                                         width: double.infinity, | 
		
	
		
			
				|  |  |  |  |                                                         height: 1, | 
		
	
		
			
				|  |  |  |  |                                                         margin: EdgeInsets.only(top: 8, bottom: 8), | 
		
	
		
			
				|  |  |  |  |                                                       ); | 
		
	
		
			
				|  |  |  |  |                                                     }, | 
		
	
		
			
				|  |  |  |  |                                                     physics: NeverScrollableScrollPhysics(), | 
		
	
		
			
				|  |  |  |  |                                                     shrinkWrap: true, | 
		
	
		
			
				|  |  |  |  |                                                     itemCount: replacementList!.length, | 
		
	
		
			
				|  |  |  |  |                                                     padding: EdgeInsets.only(top: 8, bottom: 8), | 
		
	
		
			
				|  |  |  |  |                                                   ) | 
		
	
		
			
				|  |  |  |  |                                                 : ListView.separated( | 
		
	
		
			
				|  |  |  |  |                                                     itemBuilder: (context, index) { | 
		
	
		
			
				|  |  |  |  |                                                       return showItem(widget.actionHistoryList![index]); | 
		
	
		
			
				|  |  |  |  |                                                     }, | 
		
	
		
			
				|  |  |  |  |                                                     separatorBuilder: (context, index) { | 
		
	
		
			
				|  |  |  |  |                                                       return Container( | 
		
	
		
			
				|  |  |  |  |                                                         color: MyColors.borderColor, | 
		
	
		
			
				|  |  |  |  |                                                         width: double.infinity, | 
		
	
		
			
				|  |  |  |  |                                                         height: 1, | 
		
	
		
			
				|  |  |  |  |                                                         margin: EdgeInsets.only(top: 8, bottom: 8), | 
		
	
		
			
				|  |  |  |  |                                                       ); | 
		
	
		
			
				|  |  |  |  |                                                     }, | 
		
	
		
			
				|  |  |  |  |                                                     physics: NeverScrollableScrollPhysics(), | 
		
	
		
			
				|  |  |  |  |                                                     shrinkWrap: true, | 
		
	
		
			
				|  |  |  |  |                                                     itemCount: widget.actionHistoryList!.length, | 
		
	
		
			
				|  |  |  |  |                                                     padding: EdgeInsets.only(top: 8, bottom: 8), | 
		
	
		
			
				|  |  |  |  |                                                   ), | 
		
	
		
			
				|  |  |  |  |                           ), | 
		
	
		
			
				|  |  |  |  |                         ), | 
		
	
		
			
				|  |  |  |  |                         if (favLetters != null) | 
		
	
		
			
				|  |  |  |  |                           Container( | 
		
	
		
			
				|  |  |  |  |                             width: 30, | 
		
	
		
			
				|  |  |  |  |                             // color: Colors.red, | 
		
	
		
			
				|  |  |  |  |                             child: ListView.separated( | 
		
	
		
			
				|  |  |  |  |                               itemBuilder: (context, index) { | 
		
	
		
			
				|  |  |  |  |                                 return Container( | 
		
	
		
			
				|  |  |  |  |                                   padding: EdgeInsets.all(8), | 
		
	
		
			
				|  |  |  |  |                                   alignment: Alignment.center, | 
		
	
		
			
				|  |  |  |  |                                   child: favLetters![index].toText14(color: selectedFavLetter == favLetters![index] ? MyColors.gradiantStartColor : Colors.black), | 
		
	
		
			
				|  |  |  |  |                                 ).onPress(() { | 
		
	
		
			
				|  |  |  |  |                                   selectedFavLetter = favLetters![index].toUpperCase(); | 
		
	
		
			
				|  |  |  |  |                                   fetchFavUsersList(); | 
		
	
		
			
				|  |  |  |  |                                 }); | 
		
	
		
			
				|  |  |  |  |                               }, | 
		
	
		
			
				|  |  |  |  |                               separatorBuilder: (context, index) { | 
		
	
		
			
				|  |  |  |  |                                 return SizedBox( | 
		
	
		
			
				|  |  |  |  |                                   height: 0, | 
		
	
		
			
				|  |  |  |  |                                 ); | 
		
	
		
			
				|  |  |  |  |                               }, | 
		
	
		
			
				|  |  |  |  |                               physics: NeverScrollableScrollPhysics(), | 
		
	
		
			
				|  |  |  |  |                               shrinkWrap: true, | 
		
	
		
			
				|  |  |  |  |                               itemCount: favLetters!.length, | 
		
	
		
			
				|  |  |  |  |                             ), | 
		
	
		
			
				|  |  |  |  |                           ), | 
		
	
		
			
				|  |  |  |  |                       ], | 
		
	
		
			
				|  |  |  |  |                     ), | 
		
	
		
			
				|  |  |  |  |                     20.height, | 
		
	
		
			
				|  |  |  |  |                     InputWidget( | 
		
	
		
			
				|  |  |  |  |                       "Search By Username", | 
		
	
		
			
				|  |  |  |  |                       "", | 
		
	
		
			
				|  |  |  |  |                       username, | 
		
	
		
			
				|  |  |  |  |                       isBackgroundEnable: true, | 
		
	
		
			
				|  |  |  |  |                     ), | 
		
	
		
			
				|  |  |  |  |                     24.height, | 
		
	
		
			
				|  |  |  |  |                     "Related".toText16(), | 
		
	
		
			
				|  |  |  |  |                     12.height, | 
		
	
		
			
				|  |  |  |  |                     ListView.separated( | 
		
	
		
			
				|  |  |  |  |                       itemBuilder: (context, index) { | 
		
	
		
			
				|  |  |  |  |                         return showItem(context, related[index]); | 
		
	
		
			
				|  |  |  |  |                       }, | 
		
	
		
			
				|  |  |  |  |                       separatorBuilder: (context, index) { | 
		
	
		
			
				|  |  |  |  |                         return Container( | 
		
	
		
			
				|  |  |  |  |                           color: MyColors.borderColor, | 
		
	
		
			
				|  |  |  |  |                           width: double.infinity, | 
		
	
		
			
				|  |  |  |  |                           height: 1, | 
		
	
		
			
				|  |  |  |  |                           margin: EdgeInsets.only(top: 8, bottom: 8), | 
		
	
		
			
				|  |  |  |  |                         ); | 
		
	
		
			
				|  |  |  |  |                       }, | 
		
	
		
			
				|  |  |  |  |                       physics: NeverScrollableScrollPhysics(), | 
		
	
		
			
				|  |  |  |  |                       shrinkWrap: true, | 
		
	
		
			
				|  |  |  |  |                       itemCount: related.length, | 
		
	
		
			
				|  |  |  |  |                       padding: EdgeInsets.only(top: 8, bottom: 8), | 
		
	
		
			
				|  |  |  |  |                     ), | 
		
	
		
			
				|  |  |  |  |                     24.height, | 
		
	
		
			
				|  |  |  |  |                     "Favorites".toText16(), | 
		
	
		
			
				|  |  |  |  |                     12.height, | 
		
	
		
			
				|  |  |  |  |                     ListView.separated( | 
		
	
		
			
				|  |  |  |  |                       itemBuilder: (context, index) { | 
		
	
		
			
				|  |  |  |  |                         return showItem(context, favorites[index], | 
		
	
		
			
				|  |  |  |  |                             isEnabled: true); | 
		
	
		
			
				|  |  |  |  |                       }, | 
		
	
		
			
				|  |  |  |  |                       separatorBuilder: (context, index) { | 
		
	
		
			
				|  |  |  |  |                         return Container( | 
		
	
		
			
				|  |  |  |  |                           color: MyColors.borderColor, | 
		
	
		
			
				|  |  |  |  |                           width: double.infinity, | 
		
	
		
			
				|  |  |  |  |                           height: 1, | 
		
	
		
			
				|  |  |  |  |                           margin: EdgeInsets.only(top: 8, bottom: 8), | 
		
	
		
			
				|  |  |  |  |                         ); | 
		
	
		
			
				|  |  |  |  |                       }, | 
		
	
		
			
				|  |  |  |  |                       physics: NeverScrollableScrollPhysics(), | 
		
	
		
			
				|  |  |  |  |                       shrinkWrap: true, | 
		
	
		
			
				|  |  |  |  |                       itemCount: favorites.length, | 
		
	
		
			
				|  |  |  |  |                       padding: EdgeInsets.only(top: 8, bottom: 8), | 
		
	
		
			
				|  |  |  |  |                     ), | 
		
	
		
			
				|  |  |  |  |                   ], | 
		
	
		
			
				|  |  |  |  |                 ), | 
		
	
		
			
				|  |  |  |  |               ), | 
		
	
	
		
			
				
					|  |  |  | @ -138,26 +353,134 @@ class DelegateSheet extends StatelessWidget { | 
		
	
		
			
				|  |  |  |  |     ); | 
		
	
		
			
				|  |  |  |  |   } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |   Widget showItem(BuildContext context, String name, {bool isEnabled = false}) { | 
		
	
		
			
				|  |  |  |  |   Widget showItem(GetActionHistoryList actionHistory) { | 
		
	
		
			
				|  |  |  |  |     return InkWell( | 
		
	
		
			
				|  |  |  |  |       onTap: () { | 
		
	
		
			
				|  |  |  |  |         showMyBottomSheet(context, child: SelectedItemSheet("Delegate")); | 
		
	
		
			
				|  |  |  |  |         showMyBottomSheet(context, | 
		
	
		
			
				|  |  |  |  |             child: SelectedItemSheet( | 
		
	
		
			
				|  |  |  |  |               "Comment", | 
		
	
		
			
				|  |  |  |  |               actionHistoryList: actionHistory, | 
		
	
		
			
				|  |  |  |  |               notificationID: widget.notificationID, | 
		
	
		
			
				|  |  |  |  |             )); | 
		
	
		
			
				|  |  |  |  |       }, | 
		
	
		
			
				|  |  |  |  |       child: Row( | 
		
	
		
			
				|  |  |  |  |         children: [ | 
		
	
		
			
				|  |  |  |  |           CircularAvatar( | 
		
	
		
			
				|  |  |  |  |             url: actionHistory.eMPLOYEEIMAGE ?? "", | 
		
	
		
			
				|  |  |  |  |             height: 30, | 
		
	
		
			
				|  |  |  |  |             width: 30, | 
		
	
		
			
				|  |  |  |  |             isImageBase64: true, | 
		
	
		
			
				|  |  |  |  |           ), | 
		
	
		
			
				|  |  |  |  |           16.width, | 
		
	
		
			
				|  |  |  |  |           Expanded( | 
		
	
		
			
				|  |  |  |  |             child: name.toText12(), | 
		
	
		
			
				|  |  |  |  |             child: (actionHistory.nAME ?? "").toText12(), | 
		
	
		
			
				|  |  |  |  |           ), | 
		
	
		
			
				|  |  |  |  |           Icon( | 
		
	
		
			
				|  |  |  |  |             Icons.star, | 
		
	
		
			
				|  |  |  |  |             size: 16, | 
		
	
		
			
				|  |  |  |  |             color: isEnabled ? MyColors.yellowColor : MyColors.borderColor, | 
		
	
		
			
				|  |  |  |  |           IconButton( | 
		
	
		
			
				|  |  |  |  |             onPressed: () { | 
		
	
		
			
				|  |  |  |  |               actionHistory.isFavorite = true; | 
		
	
		
			
				|  |  |  |  |               fetchChangeFav( | 
		
	
		
			
				|  |  |  |  |                 email: actionHistory.eMAILADDRESS ?? "", | 
		
	
		
			
				|  |  |  |  |                 employeName: actionHistory.nAME ?? "", | 
		
	
		
			
				|  |  |  |  |                 image: actionHistory.eMPLOYEEIMAGE ?? "", | 
		
	
		
			
				|  |  |  |  |                 userName: actionHistory.uSERNAME ?? "", | 
		
	
		
			
				|  |  |  |  |                 isFav: true, | 
		
	
		
			
				|  |  |  |  |               ); | 
		
	
		
			
				|  |  |  |  |             }, | 
		
	
		
			
				|  |  |  |  |             icon: Icon( | 
		
	
		
			
				|  |  |  |  |               Icons.star, | 
		
	
		
			
				|  |  |  |  |               size: 16, | 
		
	
		
			
				|  |  |  |  |               color: (actionHistory.isFavorite ?? false) ? MyColors.yellowColor : MyColors.borderColor, | 
		
	
		
			
				|  |  |  |  |             ), | 
		
	
		
			
				|  |  |  |  |           ) | 
		
	
		
			
				|  |  |  |  |         ], | 
		
	
		
			
				|  |  |  |  |       ), | 
		
	
		
			
				|  |  |  |  |     ); | 
		
	
		
			
				|  |  |  |  |   } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |   Widget showFavUserItem(GetFavoriteReplacements actionHistory) { | 
		
	
		
			
				|  |  |  |  |     return InkWell( | 
		
	
		
			
				|  |  |  |  |       onTap: () { | 
		
	
		
			
				|  |  |  |  |         showMyBottomSheet(context, | 
		
	
		
			
				|  |  |  |  |             child: SelectedItemSheet( | 
		
	
		
			
				|  |  |  |  |               "Comment", | 
		
	
		
			
				|  |  |  |  |               favoriteReplacements: actionHistory, | 
		
	
		
			
				|  |  |  |  |               notificationID: widget.notificationID, | 
		
	
		
			
				|  |  |  |  |             )); | 
		
	
		
			
				|  |  |  |  |       }, | 
		
	
		
			
				|  |  |  |  |       child: Row( | 
		
	
		
			
				|  |  |  |  |         children: [ | 
		
	
		
			
				|  |  |  |  |           CircularAvatar( | 
		
	
		
			
				|  |  |  |  |             url: actionHistory.employeeImage ?? "", | 
		
	
		
			
				|  |  |  |  |             height: 30, | 
		
	
		
			
				|  |  |  |  |             width: 30, | 
		
	
		
			
				|  |  |  |  |             isImageBase64: true, | 
		
	
		
			
				|  |  |  |  |           ), | 
		
	
		
			
				|  |  |  |  |           16.width, | 
		
	
		
			
				|  |  |  |  |           Expanded( | 
		
	
		
			
				|  |  |  |  |             child: (actionHistory.employeeDisplayName ?? "").toText12(), | 
		
	
		
			
				|  |  |  |  |           ), | 
		
	
		
			
				|  |  |  |  |           IconButton( | 
		
	
		
			
				|  |  |  |  |             onPressed: () { | 
		
	
		
			
				|  |  |  |  |               fetchChangeFav( | 
		
	
		
			
				|  |  |  |  |                 email: actionHistory.emailAddress ?? "", | 
		
	
		
			
				|  |  |  |  |                 employeName: actionHistory.employeeDisplayName ?? "", | 
		
	
		
			
				|  |  |  |  |                 image: actionHistory.employeeImage ?? "", | 
		
	
		
			
				|  |  |  |  |                 userName: actionHistory.userName ?? "", | 
		
	
		
			
				|  |  |  |  |                 isFav: false, | 
		
	
		
			
				|  |  |  |  |                 isNeedToRefresh: true, | 
		
	
		
			
				|  |  |  |  |               ); | 
		
	
		
			
				|  |  |  |  |             }, | 
		
	
		
			
				|  |  |  |  |             icon: Icon( | 
		
	
		
			
				|  |  |  |  |               Icons.star, | 
		
	
		
			
				|  |  |  |  |               size: 16, | 
		
	
		
			
				|  |  |  |  |               color: MyColors.yellowColor, | 
		
	
		
			
				|  |  |  |  |             ), | 
		
	
		
			
				|  |  |  |  |           ) | 
		
	
		
			
				|  |  |  |  |         ], | 
		
	
		
			
				|  |  |  |  |       ), | 
		
	
		
			
				|  |  |  |  |     ); | 
		
	
		
			
				|  |  |  |  |   } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |   Widget showInputUserItem(ReplacementList actionHistory) { | 
		
	
		
			
				|  |  |  |  |     return InkWell( | 
		
	
		
			
				|  |  |  |  |       onTap: () { | 
		
	
		
			
				|  |  |  |  |         showMyBottomSheet(context, | 
		
	
		
			
				|  |  |  |  |             child: SelectedItemSheet( | 
		
	
		
			
				|  |  |  |  |               "Comment", | 
		
	
		
			
				|  |  |  |  |               replacementList: actionHistory, | 
		
	
		
			
				|  |  |  |  |               notificationID: widget.notificationID, | 
		
	
		
			
				|  |  |  |  |             )); | 
		
	
		
			
				|  |  |  |  |       }, | 
		
	
		
			
				|  |  |  |  |       child: Row( | 
		
	
		
			
				|  |  |  |  |         children: [ | 
		
	
		
			
				|  |  |  |  |           CircularAvatar( | 
		
	
		
			
				|  |  |  |  |             url: actionHistory.employeeImage ?? "", | 
		
	
		
			
				|  |  |  |  |             height: 30, | 
		
	
		
			
				|  |  |  |  |             width: 30, | 
		
	
		
			
				|  |  |  |  |             isImageBase64: true, | 
		
	
		
			
				|  |  |  |  |           ), | 
		
	
		
			
				|  |  |  |  |           16.width, | 
		
	
		
			
				|  |  |  |  |           Expanded( | 
		
	
		
			
				|  |  |  |  |             child: (actionHistory.employeeDisplayName ?? "").toText12(), | 
		
	
		
			
				|  |  |  |  |           ), | 
		
	
		
			
				|  |  |  |  |           IconButton( | 
		
	
		
			
				|  |  |  |  |             onPressed: () { | 
		
	
		
			
				|  |  |  |  |               actionHistory.isFavorite = !(actionHistory.isFavorite ?? false); | 
		
	
		
			
				|  |  |  |  |               fetchChangeFav( | 
		
	
		
			
				|  |  |  |  |                 email: actionHistory.emailAddress ?? "", | 
		
	
		
			
				|  |  |  |  |                 employeName: actionHistory.employeeDisplayName ?? "", | 
		
	
		
			
				|  |  |  |  |                 image: actionHistory.employeeImage ?? "", | 
		
	
		
			
				|  |  |  |  |                 userName: actionHistory.userName ?? "", | 
		
	
		
			
				|  |  |  |  |                 isFav: false, | 
		
	
		
			
				|  |  |  |  |                 isNeedToRefresh: false, | 
		
	
		
			
				|  |  |  |  |               ); | 
		
	
		
			
				|  |  |  |  |             }, | 
		
	
		
			
				|  |  |  |  |             icon: Icon( | 
		
	
		
			
				|  |  |  |  |               Icons.star, | 
		
	
		
			
				|  |  |  |  |               size: 16, | 
		
	
		
			
				|  |  |  |  |               color: (actionHistory.isFavorite ?? false) ? MyColors.yellowColor : MyColors.borderColor, | 
		
	
		
			
				|  |  |  |  |             ), | 
		
	
		
			
				|  |  |  |  |           ) | 
		
	
		
			
				|  |  |  |  |         ], | 
		
	
		
			
				|  |  |  |  |       ), | 
		
	
		
			
				|  |  |  |  |     ); | 
		
	
	
		
			
				
					|  |  |  | 
 |