From bfd1ce2eab9bfdbce7b14135ccde5806188abb41 Mon Sep 17 00:00:00 2001 From: Sultan khan Date: Thu, 3 Sep 2026 17:31:35 +0300 Subject: [PATCH] add family member issue fixed. --- lib/ui/profile/add_update_family_member.dart | 5 +- lib/ui/profile/family_members.dart | 60 +++++++++++--------- 2 files changed, 36 insertions(+), 29 deletions(-) diff --git a/lib/ui/profile/add_update_family_member.dart b/lib/ui/profile/add_update_family_member.dart index 5a31447..54cf2c3 100644 --- a/lib/ui/profile/add_update_family_member.dart +++ b/lib/ui/profile/add_update_family_member.dart @@ -1,7 +1,6 @@ import 'dart:io'; import 'package:easy_localization/easy_localization.dart'; -import 'package:easy_localization/src/public_ext.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:mohem_flutter_app/api/leave_balance_api_client.dart'; @@ -27,7 +26,7 @@ import 'package:mohem_flutter_app/widgets/dynamic_forms/dynamic_textfield_widget class FamilyMemberScreenParams { String? actionType; - int relationID; + int? relationID; int? flag; FamilyMemberScreenParams(this.relationID, {this.actionType, this.flag}); @@ -77,7 +76,7 @@ class _AddUpdateFamilyMemberState extends State { element?.getContactDetailsList = new GetContactDetailsList(); }); } else if (params!.actionType == "UPDATE") { - getContactDetailsList = await ProfileApiClient().getContactDetailsList(params!.relationID); + getContactDetailsList = await ProfileApiClient().getContactDetailsList(params!.relationID!); getBasicDetDffStructureList?.forEach((element) { element?.getContactDetailsList = getContactDetailsList?.singleWhere((userDetail) => userDetail?.aPPLICATIONCOLUMNNAME == element?.aPPLICATIONCOLUMNNAME); diff --git a/lib/ui/profile/family_members.dart b/lib/ui/profile/family_members.dart index ffded0b..7b33d47 100644 --- a/lib/ui/profile/family_members.dart +++ b/lib/ui/profile/family_members.dart @@ -1,4 +1,4 @@ -import 'package:easy_localization/src/public_ext.dart'; +import 'package:easy_localization/easy_localization.dart'; import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; import 'package:mohem_flutter_app/api/profile_api_client.dart'; @@ -13,7 +13,6 @@ import 'package:mohem_flutter_app/models/dashboard/menu_entries.dart'; import 'package:mohem_flutter_app/models/get_employee_contacts.model.dart'; import 'package:mohem_flutter_app/provider/dashboard_provider_model.dart'; import 'package:mohem_flutter_app/ui/profile/add_update_family_member.dart'; -import 'package:mohem_flutter_app/ui/profile/profile_screen.dart'; import 'package:mohem_flutter_app/widgets/app_bar_widget.dart'; import 'package:mohem_flutter_app/widgets/button/default_button.dart'; import 'package:provider/provider.dart'; @@ -28,22 +27,11 @@ class FamilyMembers extends StatefulWidget { class _FamilyMembersState extends State { List getEmployeeContactsList = []; - dynamic? relationId; - int? flag; - GetMenuEntriesList menuEntries = GetMenuEntriesList(); + int? relationId; @override void initState() { super.initState(); - List menuData = Provider.of(context, listen: false).getMenuEntriesList!; - - List arr = menuData.where((GetMenuEntriesList e) => e.requestType == 'CONTACT').toList(); - if (arr.isNotEmpty) { - menuEntries = arr[0]; - } else { - menuEntries = new GetMenuEntriesList(); - } - getEmployeeContacts(); } @@ -59,7 +47,19 @@ class _FamilyMembersState extends State { } } + GetMenuEntriesList _getContactMenuEntries(BuildContext context) { + List menuData = context.watch().getMenuEntriesList ?? []; + List arr = menuData.where((GetMenuEntriesList e) => e.requestType == 'CONTACT').toList(); + return arr.isNotEmpty ? arr.first : GetMenuEntriesList(); + } + + @override Widget build(BuildContext context) { + GetMenuEntriesList menuEntries = _getContactMenuEntries(context); + bool canAddFamilyMember = menuEntries.addButton == 'Y'; + bool canUpdateFamilyMember = menuEntries.updateButton == 'Y'; + bool canDeleteFamilyMember = menuEntries.deleteButton == 'Y'; + return Scaffold( appBar: AppBarWidget( context, @@ -95,16 +95,18 @@ class _FamilyMembersState extends State { child: Icon( Icons.edit, size: 14, - color: menuEntries.updateButton == 'Y' ? MyColors.grey67Color : MyColors.lightGreyColor, + color: canUpdateFamilyMember ? MyColors.grey67Color : MyColors.lightGreyColor, )), TextSpan( text: LocaleKeys.update.tr(), style: TextStyle( - color: menuEntries.updateButton == 'Y' ? MyColors.grey67Color : MyColors.lightGreyColor, fontSize: 12, letterSpacing: -0.36, fontWeight: FontWeight.w600), + color: canUpdateFamilyMember ? MyColors.grey67Color : MyColors.lightGreyColor, fontSize: 12, letterSpacing: -0.36, fontWeight: FontWeight.w600), recognizer: TapGestureRecognizer() ..onTap = () async { - relationId = getEmployeeContactsList[index]!.cONTACTRELATIONSHIPID; - menuEntries.updateButton == 'Y' ? showUpdateAlertDialog(context, relationId, 2, "UPDATE") : null; + relationId = getEmployeeContactsList[index].cONTACTRELATIONSHIPID; + if (canUpdateFamilyMember && relationId != null) { + showUpdateAlertDialog(context, relationId, 2, "UPDATE"); + } }) ], ), @@ -117,19 +119,21 @@ class _FamilyMembersState extends State { child: Icon( Icons.delete, size: 15, - color: menuEntries.updateButton == 'Y' ? MyColors.redColor : MyColors.lightGreyColor, + color: canDeleteFamilyMember ? MyColors.redColor : MyColors.lightGreyColor, ), ), TextSpan( text: LocaleKeys.remove.tr(), style: TextStyle( - color: menuEntries.updateButton == 'Y' ? MyColors.redColor : MyColors.lightGreyColor, fontSize: 12, letterSpacing: -0.36, fontWeight: FontWeight.w600), + color: canDeleteFamilyMember ? MyColors.redColor : MyColors.lightGreyColor, fontSize: 12, letterSpacing: -0.36, fontWeight: FontWeight.w600), ), ], ), ).onPress(() { - relationId = getEmployeeContactsList[index]!.cONTACTRELATIONSHIPID; - menuEntries.updateButton == 'Y' ? showRemoveAlertDialog(context, relationId) : null; + relationId = getEmployeeContactsList[index].cONTACTRELATIONSHIPID; + if (canDeleteFamilyMember && relationId != null) { + showRemoveAlertDialog(context, relationId); + } }), ], ), @@ -139,10 +143,13 @@ class _FamilyMembersState extends State { ), DefaultButton( LocaleKeys.addNewFamilyMember.tr(), - menuEntries.updateButton == 'Y' + canAddFamilyMember ? () async { - Navigator.pushNamed(context, AppRoutes.addUpdateFamilyMember, arguments: FamilyMemberScreenParams( relationId, flag: 1, actionType: "ADD")); - // ProfileScreen(); + Navigator.pushNamed( + context, + AppRoutes.addUpdateFamilyMember, + arguments: FamilyMemberScreenParams(null, flag: 1, actionType: "ADD"), + ); } : null) .insideContainer, @@ -164,6 +171,7 @@ class _FamilyMembersState extends State { LocaleKeys.ok.tr(), ), onPressed: () { + Navigator.pop(context); Navigator.pushNamed( context, AppRoutes.addUpdateFamilyMember, @@ -203,7 +211,7 @@ class _FamilyMembersState extends State { LocaleKeys.ok.tr(), ), onPressed: () { - Navigator.pushNamed(context, AppRoutes.deleteFamilyMember, arguments: FamilyMemberScreenParams(relationId)); + Navigator.pushNamed(context, AppRoutes.deleteFamilyMember, arguments: relationId); // continueDynamicForms(); }, );