From 212f8e6663a96326b056aec042f459604a65e4f5 Mon Sep 17 00:00:00 2001 From: Sikander Saleem Date: Wed, 26 Oct 2022 16:28:12 +0300 Subject: [PATCH] worklist & itg counters issue resolved, delegate & request info in itg added. --- lib/api/worklist/worklist_api_client.dart | 33 ++++ lib/ui/landing/widget/menus_widget.dart | 1 - lib/ui/work_list/itg_detail_screen.dart | 28 +-- .../approval_level_fragment.dart | 20 ++- lib/ui/work_list/sheets/delegate_sheet.dart | 94 ++++++++-- .../sheets/selected_itg_item_sheet.dart | 170 ++++++++++++++++++ lib/ui/work_list/work_list_screen.dart | 34 +++- lib/ui/work_list/worklist_detail_screen.dart | 5 +- .../worklist_fragments/actions_fragment.dart | 3 +- 9 files changed, 350 insertions(+), 38 deletions(-) create mode 100644 lib/ui/work_list/sheets/selected_itg_item_sheet.dart diff --git a/lib/api/worklist/worklist_api_client.dart b/lib/api/worklist/worklist_api_client.dart index 1bd8ec9..1b00383 100644 --- a/lib/api/worklist/worklist_api_client.dart +++ b/lib/api/worklist/worklist_api_client.dart @@ -357,6 +357,39 @@ class WorkListApiClient { }, url, postParams); } + Future delegateITGRequest(String requestType, int taskId, int itemId, String employeeNumber,String newUserEMPId, String comments) async { + String url = "${ApiConsts.cocRest}ITGDelegateRequest"; + Map postParams = { + "RequestType": requestType, + "TaskID": taskId, + "ItemID": itemId, + "EmployeeNumber": employeeNumber, + "NewUserEMPId": newUserEMPId, + "Comments": comments, + }; + postParams.addAll(AppState().postParamsJson); + return await ApiClient().postJsonForObject((json) { + ItgFormsModel responseData = ItgFormsModel.fromJson(json); + return responseData.itgRequest; + }, url, postParams); + } + Future informationITGRequest(String requestType, int taskId, int itemId, String employeeNumber,String newUserEMPId, String comments) async { + String url = "${ApiConsts.cocRest}ITGRequestInformation"; + Map postParams = { + "RequestType": requestType, + "TaskID": taskId, + "ItemID": itemId, + "EmployeeNumber": employeeNumber, + "NewUserEMPId": newUserEMPId, + "Comments": comments, + }; + postParams.addAll(AppState().postParamsJson); + return await ApiClient().postJsonForObject((json) { + ItgFormsModel responseData = ItgFormsModel.fromJson(json); + return responseData.itgRequest; + }, url, postParams); + } + //HR Detail Screen Requests Future?> GetEitNotificationBody(int? notificationId) async { String url = "${ApiConsts.erpRest}GET_EIT_NOTIFICATION_BODY"; diff --git a/lib/ui/landing/widget/menus_widget.dart b/lib/ui/landing/widget/menus_widget.dart index 60b194a..3e24f63 100644 --- a/lib/ui/landing/widget/menus_widget.dart +++ b/lib/ui/landing/widget/menus_widget.dart @@ -18,7 +18,6 @@ class MenusWidget extends StatelessWidget { return Consumer( builder: (cxt, data, child) { - print("data.workListCounter:${data.workListCounter}"); return GridView( gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: 2, childAspectRatio: 2 / 2, crossAxisSpacing: 9, mainAxisSpacing: 9), padding: EdgeInsets.zero, diff --git a/lib/ui/work_list/itg_detail_screen.dart b/lib/ui/work_list/itg_detail_screen.dart index c9329a1..0a74500 100644 --- a/lib/ui/work_list/itg_detail_screen.dart +++ b/lib/ui/work_list/itg_detail_screen.dart @@ -16,7 +16,9 @@ import 'package:mohem_flutter_app/models/itg_forms_models/itg_request_model.dart import 'package:mohem_flutter_app/models/itg_forms_models/request_detail_model.dart'; import 'package:mohem_flutter_app/ui/work_list/itg_fragments/approval_level_fragment.dart'; import 'package:mohem_flutter_app/ui/work_list/itg_fragments/request_detail_fragment.dart'; +import 'package:mohem_flutter_app/ui/work_list/sheets/delegate_sheet.dart'; import 'package:mohem_flutter_app/widgets/app_bar_widget.dart'; +import 'package:mohem_flutter_app/widgets/bottom_sheet.dart'; import 'package:mohem_flutter_app/widgets/button/default_button.dart'; import 'package:mohem_flutter_app/widgets/dialogs/itg_comments_dialog.dart'; @@ -203,7 +205,7 @@ class _ItgDetailScreenState extends State { mainAxisSize: MainAxisSize.min, crossAxisAlignment: CrossAxisAlignment.end, children: [ - myFab(LocaleKeys.pleaseEnterComments.tr(), "assets/images/skip.svg").onPress(() { + myFab(LocaleKeys.skip.tr(), "assets/images/skip.svg").onPress(() { if (AppState().requestAllList!.length - 1 > AppState().itgWorkListIndex!) { AppState().itgWorkListIndex = AppState().itgWorkListIndex! + 1; requestDetails = null; @@ -257,13 +259,17 @@ class _ItgDetailScreenState extends State { } void handleFabAction(AllowedActions action) { + print(action.toJson()); switch (action.action) { - case "DELEGATE": - // showMyBottomSheet(context, child: DelegateSheet(title: LocaleKeys.delegate.tr(), apiMode: action.action!, notificationID: workListData!.nOTIFICATIONID, actionHistoryList: actionHistoryList)); + case "Delegate": + showMyBottomSheet(context, + child: DelegateSheet(title: LocaleKeys.delegate.tr(), apiMode: action.action!, notificationID: null, actionHistoryList: null, wFHistory: itgRequest?.wFHistory ?? [])); break; - case "REQUEST_INFO": - // do something else + case "RequestInformation": + showMyBottomSheet(context, + child: DelegateSheet(title: LocaleKeys.request_info.tr(), apiMode: action.action!, notificationID: null, actionHistoryList: null, wFHistory: itgRequest?.wFHistory ?? [])); + break; case "RFC": // do something else @@ -357,11 +363,11 @@ class _ItgDetailScreenState extends State { Utils.hideLoading(context); Utils.showToast(LocaleKeys.yourChangeHasBeenSavedSuccessfully.tr()); // Navigator.pop(context, "delegate_reload"); - AppState().workList!.removeAt(AppState().workListIndex!); - if (AppState().workList!.isEmpty) { + AppState().requestAllList!.removeAt(AppState().itgWorkListIndex!); + if (AppState().requestAllList!.isEmpty) { Navigator.pop(context, "delegate_reload"); } else { - if (AppState().workList!.length <= AppState().workListIndex!) { + if (AppState().requestAllList!.length <= AppState().itgWorkListIndex!) { Navigator.pop(context, "delegate_reload"); } else { requestDetails = null; @@ -381,11 +387,11 @@ class _ItgDetailScreenState extends State { Utils.hideLoading(context); Utils.showToast(LocaleKeys.yourChangeHasBeenSavedSuccessfully.tr()); // Navigator.pop(context, "delegate_reload"); - AppState().workList!.removeAt(AppState().workListIndex!); - if (AppState().workList!.isEmpty) { + AppState().requestAllList!.removeAt(AppState().itgWorkListIndex!); + if (AppState().requestAllList!.isEmpty) { Navigator.pop(context, "delegate_reload"); } else { - if (AppState().workList!.length <= AppState().workListIndex!) { + if (AppState().requestAllList!.length <= AppState().itgWorkListIndex!) { Navigator.pop(context, "delegate_reload"); } else { requestDetails = null; diff --git a/lib/ui/work_list/itg_fragments/approval_level_fragment.dart b/lib/ui/work_list/itg_fragments/approval_level_fragment.dart index 4ffca44..1d77f2a 100644 --- a/lib/ui/work_list/itg_fragments/approval_level_fragment.dart +++ b/lib/ui/work_list/itg_fragments/approval_level_fragment.dart @@ -6,7 +6,7 @@ import 'package:mohem_flutter_app/extensions/string_extensions.dart'; import 'package:mohem_flutter_app/extensions/widget_extensions.dart'; import 'package:mohem_flutter_app/generated/locale_keys.g.dart'; import 'package:mohem_flutter_app/models/itg_forms_models/wf_history_model.dart'; -import 'package:mohem_flutter_app/ui/work_list/sheets/request_more_info_sheet.dart'; +import 'package:mohem_flutter_app/ui/work_list/sheets/selected_itg_item_sheet.dart'; import 'package:mohem_flutter_app/widgets/bottom_sheet.dart'; import 'package:mohem_flutter_app/widgets/circular_avatar.dart'; @@ -96,11 +96,25 @@ class ApprovalLevelfragment extends StatelessWidget { Row( children: [ LocaleKeys.request_info.tr().toText12(color: MyColors.grey67Color).center.paddingOnly(top: 6, bottom: 6).onPress(() { - showMyBottomSheet(context, child: RequestMoreInfoSheet()); + showMyBottomSheet( + context, + child: SelectedItgItemSheet( + LocaleKeys.comments.tr(), + wfHistory: history, + apiMode: 'RequestInformation', + ), + ); }).expanded, Container(width: 1, height: 30, color: MyColors.lightGreyEFColor), LocaleKeys.delegate.tr().toText12(color: MyColors.gradiantEndColor).center.paddingOnly(top: 6, bottom: 6).onPress(() { - // showMyBottomSheet(context, child: DelegateSheet()); + showMyBottomSheet( + context, + child: SelectedItgItemSheet( + LocaleKeys.comments.tr(), + wfHistory: history, + apiMode: 'Delegate', + ), + ); }).expanded, ], ), diff --git a/lib/ui/work_list/sheets/delegate_sheet.dart b/lib/ui/work_list/sheets/delegate_sheet.dart index 75b33c9..8663cd5 100644 --- a/lib/ui/work_list/sheets/delegate_sheet.dart +++ b/lib/ui/work_list/sheets/delegate_sheet.dart @@ -17,6 +17,7 @@ import 'package:mohem_flutter_app/models/worklist/get_favorite_replacements_mode 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/ui/work_list/sheets/selected_itg_item_sheet.dart'; import 'package:mohem_flutter_app/widgets/bottom_sheet.dart'; import 'package:mohem_flutter_app/widgets/button/default_button.dart'; import 'package:mohem_flutter_app/widgets/circular_avatar.dart'; @@ -28,7 +29,7 @@ class DelegateSheet extends StatefulWidget { List? actionHistoryList; List? wFHistory; - DelegateSheet({required this.title, required this.apiMode, this.notificationID, this.actionHistoryList,this.wFHistory}); + DelegateSheet({required this.title, required this.apiMode, this.notificationID, this.actionHistoryList, this.wFHistory}); @override State createState() => _DelegateSheetState(); @@ -45,6 +46,21 @@ class _DelegateSheetState extends State { List? favUsersList; List? replacementList; + @override + void initState() { + super.initState(); + if (widget.wFHistory != null) { + widget.wFHistory = widget.wFHistory!.reversed.toList(); + var ids = widget.wFHistory!.map((e) => e.employeeID).toSet(); + widget.wFHistory!.retainWhere((x) => ids.remove(x.employeeID)); + } + } + + @override + void dispose() { + super.dispose(); + } + Future fetchFavLetters({bool isNeedLoading = true}) async { favLetters = []; if (isNeedLoading) Utils.showLoading(context); @@ -276,23 +292,41 @@ class _DelegateSheetState extends State { 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.borderE3Color, - 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), - ), + : (widget.wFHistory != null + ? ListView.separated( + itemBuilder: (context, index) { + return showItgItem(widget.wFHistory![index]); + }, + separatorBuilder: (context, index) { + return Container( + color: MyColors.borderE3Color, + width: double.infinity, + height: 1, + margin: EdgeInsets.only(top: 8, bottom: 8), + ); + }, + physics: NeverScrollableScrollPhysics(), + shrinkWrap: true, + itemCount: widget.wFHistory!.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.borderE3Color, + 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) @@ -393,6 +427,30 @@ class _DelegateSheetState extends State { ); } + Widget showItgItem(WFHistory wfHistory) { + return InkWell( + onTap: () { + showMyBottomSheet(context, + child: SelectedItgItemSheet( + "Comment", + apiMode: widget.apiMode, + wfHistory: wfHistory, + // notificationID: widget.notificationID, + )); + }, + child: Row( + children: [ + CircularAvatar( + height: 30, + width: 30, + ), + 9.width, + (wfHistory.name ?? "").toText12().expanded, + ], + ), + ); + } + Widget showFavUserItem(GetFavoriteReplacements actionHistory) { return InkWell( onTap: () { diff --git a/lib/ui/work_list/sheets/selected_itg_item_sheet.dart b/lib/ui/work_list/sheets/selected_itg_item_sheet.dart new file mode 100644 index 0000000..7381d59 --- /dev/null +++ b/lib/ui/work_list/sheets/selected_itg_item_sheet.dart @@ -0,0 +1,170 @@ +import 'package:easy_localization/easy_localization.dart'; +import 'package:flutter/material.dart'; +import 'package:mohem_flutter_app/api/worklist/worklist_api_client.dart'; +import 'package:mohem_flutter_app/app_state/app_state.dart'; +import 'package:mohem_flutter_app/classes/colors.dart'; +import 'package:mohem_flutter_app/classes/utils.dart'; +import 'package:mohem_flutter_app/extensions/int_extensions.dart'; +import 'package:mohem_flutter_app/extensions/string_extensions.dart'; +import 'package:mohem_flutter_app/generated/locale_keys.g.dart'; +import 'package:mohem_flutter_app/models/itg_forms_models/wf_history_model.dart'; +import 'package:mohem_flutter_app/models/worklist/get_favorite_replacements_model.dart'; +import 'package:mohem_flutter_app/models/worklist/replacement_list_model.dart'; +import 'package:mohem_flutter_app/widgets/button/default_button.dart'; +import 'package:mohem_flutter_app/widgets/circular_avatar.dart'; +import 'package:mohem_flutter_app/widgets/input_widget.dart'; + +class SelectedItgItemSheet extends StatelessWidget { + String title, apiMode; + int? notificationID; + WFHistory wfHistory; + GetFavoriteReplacements? favoriteReplacements; + ReplacementList? replacementList; + + SelectedItgItemSheet(this.title, {required this.apiMode, this.notificationID, required this.wfHistory, this.favoriteReplacements, this.replacementList}); + + TextEditingController username = TextEditingController(); + String comment = ""; + + @override + Widget build(BuildContext context) { + return Container( + width: double.infinity, + height: MediaQuery.of(context).size.height - 80, + child: Column( + children: [ + Expanded( + child: SingleChildScrollView( + child: Padding( + padding: EdgeInsets.all(21), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + title.toText24(isBold: true), + 21.height, + if (wfHistory != null) showItem(wfHistory.name, false), + if (favoriteReplacements != null) showItem(favoriteReplacements!.employeeDisplayName, true), + if (replacementList != null) showItem(replacementList!.employeeDisplayName, replacementList!.isFavorite), + 14.height, + InputWidget( + "Enter a note", + "This is simple note", + username, + isBackgroundEnable: true, + lines: 5, + onChange: (v) { + comment = v; + }, + ), + ], + ), + ), + ), + ), + Container( + width: double.infinity, + height: 1, + color: MyColors.borderE3Color, + ), + Row( + children: [ + Expanded( + child: DefaultButton( + LocaleKeys.cancel.tr(), + () { + Navigator.pop(context); + }, + textColor: Colors.black, + colors: [ + Color(0xffE6E6E6), + Color(0xffE6E6E6), + ], + ), + ), + 16.width, + Expanded( + child: DefaultButton( + LocaleKeys.submit.tr(), + () { + if (comment.trim() != "") { + String? email = "", userId = ""; + if (wfHistory != null) { + email = wfHistory.email; + userId = wfHistory.employeeID; + } else if (favoriteReplacements != null) { + email = favoriteReplacements!.emailAddress; + userId = favoriteReplacements!.userName; + } else { + email = replacementList!.emailAddress; + userId = replacementList!.userName; + } + performNetworkCall(context, email: email ?? "", userId: userId ?? ""); + } else { + Utils.showToast("Please enter comments"); + } + }, + colors: const [ + Color(0xff32D892), + Color(0xff1AB170), + ], + ), + ), + ], + ).insideContainer + ], + ), + ); + } + + Future performNetworkCall(BuildContext context, {String? email, String? userId}) async { + Utils.showLoading(context); + try { + var requestDetails = AppState().requestAllList![AppState().itgWorkListIndex!]; + if (apiMode == "Delegate") { + await WorkListApiClient() + .delegateITGRequest(requestDetails.requestType!, requestDetails.iD!, requestDetails.itemID!, AppState().memberInformationList?.eMPLOYEENUMBER ?? "", wfHistory.employeeID!, comment); + } else if (apiMode == "RequestInformation") { + await WorkListApiClient() + .informationITGRequest(requestDetails.requestType!, requestDetails.iD!, requestDetails.itemID!, AppState().memberInformationList?.eMPLOYEENUMBER ?? "", wfHistory.employeeID!, comment); + } + Utils.hideLoading(context); + Navigator.pop(context); + Navigator.pop(context); + Navigator.pop(context, "delegate_reload"); + } catch (ex) { + Utils.hideLoading(context); + Utils.handleException(ex, context, null); + } + } + + Widget showItem(String? name, bool? isFav) { + return Container( + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(15), + color: Color(0xffF7F7F7), + border: Border.all( + color: Color(0xffefefef), + width: 1, + ), + ), + padding: EdgeInsets.only(top: 16, bottom: 16, left: 21, right: 21), + child: Row( + children: [ + CircularAvatar( + height: 30, + width: 30, + ), + 16.width, + Expanded( + child: (name ?? "").toText12(), + ), + Icon( + Icons.star, + size: 12, + color: (isFav ?? false) ? MyColors.yellowColor : MyColors.borderColor, + ), + ], + ), + ); + } +} diff --git a/lib/ui/work_list/work_list_screen.dart b/lib/ui/work_list/work_list_screen.dart index 369bf0c..7def350 100644 --- a/lib/ui/work_list/work_list_screen.dart +++ b/lib/ui/work_list/work_list_screen.dart @@ -117,6 +117,34 @@ class _WorkListScreenState extends State { }); } + void verifyWorkListCounter() { + workListItemTypes.forEach((workListElement) { + if (workListElement.key == "ITG" && workListItemTypes[workListItemIndex].key == "ITG") { + workListElement.value = providerData.itgFormsModel?.totalCount ?? 0; + if ((AppState().requestAllList?.length ?? 0) != workListElement.value) { + workListElement.value = AppState().requestAllList?.length ?? 0; + providerData.workListCounter = providerData.workListCounter - (providerData.itgFormsModel?.totalCount ?? 0); + providerData.itgFormsModel?.totalCount = ((providerData.itgFormsModel!.totalCount ?? 0) - ((providerData.itgFormsModel?.totalCount ?? 0) - (AppState().requestAllList?.length ?? 0))); + providerData.workListCounter = providerData.workListCounter + (providerData.itgFormsModel?.totalCount ?? 0); + providerData.notify(); + } + } else if (workListElement.key == "COC") { + workListElement.value = providerData.cocFinalCount; + } else { + var tempList = providerData.getOpenNotificationsList?.where((notificationElement) { + return (notificationElement.itemType == workListItemTypes[workListItemIndex].key) && notificationElement.itemType == workListElement.key; + }).toList(); + if (tempList!.isNotEmpty) { + if ((AppState().workList?.length ?? 0) != (tempList.first.openNtfNumber ?? 0)) { + workListElement.value = AppState().workList?.length ?? 0; + providerData.workListCounter = providerData.workListCounter - ((tempList.first.openNtfNumber ?? 0) - (AppState().workList?.length ?? 0)); + providerData.notify(); + } + } + } + }); + } + ItgFormsModel? itgFormsModel; int? itgRequestTypeIndex; @@ -331,6 +359,9 @@ class _WorkListScreenState extends State { // } // calculateCounter(); // if (mounted) setState(() {}); + } else { + verifyWorkListCounter(); + if (mounted) setState(() {}); } }, child: Container( @@ -424,7 +455,7 @@ class _WorkListScreenState extends State { var shouldReloadData = await Navigator.pushNamed(context, AppRoutes.workListDetail, arguments: workData); if (shouldReloadData != null) { if (shouldReloadData.toString() == "delegate_reload") { - calculateCounter(); + verifyWorkListCounter(); getWorkList(); } else { workList!.remove(data); @@ -443,6 +474,7 @@ class _WorkListScreenState extends State { if (mounted) setState(() {}); } } else { + verifyWorkListCounter(); if (mounted) setState(() {}); } }, diff --git a/lib/ui/work_list/worklist_detail_screen.dart b/lib/ui/work_list/worklist_detail_screen.dart index 7aea35e..8dd3158 100644 --- a/lib/ui/work_list/worklist_detail_screen.dart +++ b/lib/ui/work_list/worklist_detail_screen.dart @@ -307,7 +307,7 @@ class _WorkListDetailScreenState extends State { mainAxisSize: MainAxisSize.min, crossAxisAlignment: CrossAxisAlignment.end, children: [ - myFab(LocaleKeys.pleaseEnterComments.tr(), "assets/images/skip.svg").onPress(() { + myFab(LocaleKeys.skip.tr(), "assets/images/skip.svg").onPress(() { if (AppState().workList!.length - 1 > AppState().workListIndex!) { AppState().setWorkListIndex = AppState().workListIndex! + 1; workListData = null; @@ -481,7 +481,6 @@ class _WorkListDetailScreenState extends State { void performAction(String actionMode) { TextEditingController textEditingController = TextEditingController(); - print("actionMode:$actionMode"); showDialog( context: context, builder: (cxt) => AcceptRejectInputDialog( @@ -503,7 +502,7 @@ class _WorkListDetailScreenState extends State { } ], }; - if (actionMode == "APPROVED" || actionMode == "APPROVE") { + if (actionMode == "APPROVED" || actionMode == "APPROVE" || actionMode == "CLOSE") { performNotificationAction(payload); } else if (note.isNotEmpty && (actionMode != "APPROVED" || actionMode != "APPROVE")) { performNotificationAction(payload); diff --git a/lib/ui/work_list/worklist_fragments/actions_fragment.dart b/lib/ui/work_list/worklist_fragments/actions_fragment.dart index 1df9bd3..c00f521 100644 --- a/lib/ui/work_list/worklist_fragments/actions_fragment.dart +++ b/lib/ui/work_list/worklist_fragments/actions_fragment.dart @@ -99,7 +99,8 @@ class ActionsFragment extends StatelessWidget { Row( children: [ LocaleKeys.request_info.tr().toText12(color: MyColors.grey67Color).center.paddingOnly(top: 6, bottom: 6).onPress(() { - showMyBottomSheet(context, child: DelegateSheet(title: "Request Info", apiMode: "REQUEST_INFO", notificationID: notificationID, actionHistoryList: actionHistoryList)); + showMyBottomSheet(context, + child: DelegateSheet(title: LocaleKeys.request_info.tr(), apiMode: "REQUEST_INFO", notificationID: notificationID, actionHistoryList: actionHistoryList)); }).expanded, Container(width: 1, height: 30, color: MyColors.lightGreyEFColor), LocaleKeys.delegate.tr().toText12(color: MyColors.gradiantEndColor).center.paddingOnly(top: 6, bottom: 6).onPress(() {