diff --git a/.env b/.env index 5ea1d81..8ec620d 100644 --- a/.env +++ b/.env @@ -1,4 +1,4 @@ -API_URL=https://dev.venbait.in/nhance/uat/employeeRest/ -TICKET_API_URL=https://dev.venbait.in/nhance/helpdesk/uat/api -BASE_HREF=/nhance/employee/uat/ -ENV=uat \ No newline at end of file +API_URL=https://app.nhanceindia.in/zenith/employeeRest/ +TICKET_API_URL=https://app.nhanceindia.in/helpdesk/api +BASE_HREF=/employee/ +ENV=production \ No newline at end of file diff --git a/.env.development b/.env.development index 267d625..63d6b02 100644 --- a/.env.development +++ b/.env.development @@ -1,4 +1,4 @@ API_URL=https://venbait.in/nhance/dev/employeeRest/ TICKET_API_URL=https://venbait.in/nhance/helpdesk/dev/api BASE_HREF=/nhance/employee/dev/ -ENV=development \ No newline at end of file +ENV=development diff --git a/.env.production b/.env.production index 9a9d739..8ec620d 100644 --- a/.env.production +++ b/.env.production @@ -1,4 +1,4 @@ -API_URL=https://dev.venbait.in/nhance/uat/employeeRest/ -TICKET_API_URL=https://dev.venbait.in/nhance/helpdesk/uat/api -BASE_HREF=/nhance/employee/uat/ +API_URL=https://app.nhanceindia.in/zenith/employeeRest/ +TICKET_API_URL=https://app.nhanceindia.in/helpdesk/api +BASE_HREF=/employee/ ENV=production \ No newline at end of file diff --git a/.env.uat b/.env.uat index 5ea1d81..73eb6ac 100644 --- a/.env.uat +++ b/.env.uat @@ -1,4 +1,4 @@ API_URL=https://dev.venbait.in/nhance/uat/employeeRest/ TICKET_API_URL=https://dev.venbait.in/nhance/helpdesk/uat/api BASE_HREF=/nhance/employee/uat/ -ENV=uat \ No newline at end of file +ENV=uat diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 446fa34..c33638b 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -28,10 +28,6 @@ android:resource="@style/NormalTheme" /> - - - - diff --git a/assets/wellness.png b/assets/wellness.png new file mode 100644 index 0000000..b22275b Binary files /dev/null and b/assets/wellness.png differ diff --git a/lib/pages/enrollment/addons.dart b/lib/pages/enrollment/addons.dart index 6da0857..861b5f4 100644 --- a/lib/pages/enrollment/addons.dart +++ b/lib/pages/enrollment/addons.dart @@ -58,6 +58,7 @@ class _addOnsDetailsState extends State { dynamic gmcSelfRelationship; dynamic gmcSelfDetails; dynamic gmcPolicyName; + dynamic gmcPolicyType; dynamic gmcNotes; dynamic gmcSumInsured; dynamic gmcFloaterTextDescription; @@ -72,6 +73,7 @@ class _addOnsDetailsState extends State { dynamic topUpSlabRates; dynamic topUpFamilyFloater; dynamic topUpPolicyName; + dynamic topUpPolicyType; dynamic topUpSiPremiumValue; dynamic topUpSiValue; dynamic topUpSiSelectedSI; @@ -82,6 +84,7 @@ class _addOnsDetailsState extends State { dynamic topUpParentClientPolicyId; dynamic topUpParentSlabRates; dynamic topUpParentPolicyName; + dynamic topUpParentPolicyType; dynamic topUpParentFamilyFloater; dynamic topUpParentMappedFamilyFloatersSi; dynamic topUpParentECardDownload; @@ -99,6 +102,7 @@ class _addOnsDetailsState extends State { dynamic addOnsSelectedDependent; dynamic addOnsdependentValue; dynamic addOnsDependentPolicyName; + dynamic addOnsDependentPolicyType; dynamic addOnsDependentECardDownload; int addOnsDependentOpenForEnrollment = 0; dynamic siValue; @@ -316,6 +320,8 @@ class _addOnsDetailsState extends State { topUpPolicyName = await topUpSiPolicies['gmc_si_topup']['policy_name']; + topUpPolicyType = await topUpSiPolicies['gmc_si_topup']['type']; + topUpFamilyFloater = await topUpSiPolicies['gmc_si_topup'] ['policy_terms']['family_floater']; print('topUpFamilyFloater'); @@ -352,7 +358,9 @@ class _addOnsDetailsState extends State { topUpSiPremiumGst = topUpSiPolicies['gmc_si_topup'] ['family_floaters_of_only_si_gst_value']; - topUpSiTotalAmt = topUpSiPremiumValue + topUpSiPremiumGst; + double topUpSum = topUpSiPremiumValue + topUpSiPremiumGst; + + topUpSiTotalAmt = double.parse(topUpSum.toStringAsFixed(2)); }); } // }); @@ -404,6 +412,9 @@ class _addOnsDetailsState extends State { await topUpSiParentPolicies['gmc_si_parent_topup'] ['policy_name']; + topUpParentPolicyType = + await topUpSiParentPolicies['gmc_si_parent_topup']['type']; + topUpParentFamilyFloater = await topUpSiParentPolicies['gmc_si_parent_topup'] ['policy_terms']['family_floater']; @@ -447,8 +458,11 @@ class _addOnsDetailsState extends State { topUpSiParentPolicies['gmc_si_parent_topup'] ['family_floaters_of_only_si_gst_value']; - topUpParentSiTotalAmt = + double topUpParentsSum = topUpParentSiPremiumValue + topUpParentSiPremiumGst; + + topUpParentSiTotalAmt = + double.parse(topUpParentsSum.toStringAsFixed(2)); }); } // }); @@ -500,6 +514,9 @@ class _addOnsDetailsState extends State { await addOnsDependentPolicies['gmc_dependent_addon'] ['policy_name']; + addOnsDependentPolicyType = + await addOnsDependentPolicies['gmc_dependent_addon']['type']; + addOnsDependentFamilyFloater = await addOnsDependentPolicies['gmc_dependent_addon'] ['policy_terms']['family_floater']; @@ -514,6 +531,11 @@ class _addOnsDetailsState extends State { print(addOnsDependentMappedFamilyFloatersDependent); }); + String intOpenForEnrollment = + addOnsDependentPolicies['gmc_dependent_addon'] + ['OpenForEnrollment']; + addOnsDependentOpenForEnrollment = int.parse(intOpenForEnrollment); + addOnsdependentValue = await addOnsDependentPolicies['gmc_dependent_addon'] ['family_floaters_of_dependent_and_si_value']; @@ -532,8 +554,11 @@ class _addOnsDetailsState extends State { addOnsDependentPolicies['gmc_dependent_addon'] ['family_floaters_of_dependent_and_gst_value']; - addOnsDependentTotalAmt = + double addOnsSum = addOnDependentPremiumValue + addOnsDependentPremiumGst; + + addOnsDependentTotalAmt = + double.parse(addOnsSum.toStringAsFixed(2)); }); addOnsDependentECardDownload = @@ -541,12 +566,6 @@ class _addOnsDetailsState extends State { ['eCardDownload']; print('addOnsDependentECardDownload'); print(addOnsDependentECardDownload); - - String intOpenForEnrollment = - addOnsDependentPolicies['gmc_dependent_addon'] - ['OpenForEnrollment']; - addOnsDependentOpenForEnrollment = - int.parse(intOpenForEnrollment); } } else { print('No data found in the response'); @@ -756,6 +775,7 @@ class _addOnsDetailsState extends State { 'employee_id': employee_id, 'client_id': client_id, 'emp_code': empCodeString, + 'client_branch_id': empClientBranchId, }; // Add the map to the list @@ -1396,7 +1416,7 @@ class _addOnsDetailsState extends State { textAlign: TextAlign.left, style: GoogleFonts.poppins( fontSize: - Responsive.isDesktop(context) ? 18 : 16, + Responsive.isDesktop(context) ? 18 : 14, ), ), ], @@ -1767,7 +1787,10 @@ class _addOnsDetailsState extends State { .start, children: [ Text( - topUpPolicyName ?? '', + Responsive.isDesktop( + context) + ? topUpPolicyName + : topUpPolicyType, textAlign: TextAlign.left, style: @@ -2029,7 +2052,7 @@ class _addOnsDetailsState extends State { .isDesktop( context) ? 18 - : 16, + : 14, color: Color( 0xFF232526), ), @@ -2402,8 +2425,10 @@ class _addOnsDetailsState extends State { .start, children: [ Text( - topUpParentPolicyName ?? - '', + Responsive.isDesktop( + context) + ? topUpParentPolicyName + : topUpParentPolicyType, textAlign: TextAlign.left, style: @@ -2664,7 +2689,7 @@ class _addOnsDetailsState extends State { .isDesktop( context) ? 18 - : 16, + : 14, color: Color( 0xFF232526), ), @@ -3037,8 +3062,10 @@ class _addOnsDetailsState extends State { .start, children: [ Text( - addOnsDependentPolicyName ?? - '', + Responsive.isDesktop( + context) + ? addOnsDependentPolicyName + : addOnsDependentPolicyType, textAlign: TextAlign.left, style: GoogleFonts @@ -4232,6 +4259,7 @@ class _addOnsDetailsState extends State { for (var item in data) { setState(() { gmcPolicyName = item['Policy_Name']; + gmcPolicyType = item['type']; gmcFloaterTextHeading = item['floter_text_heading']; gmcFloaterTextDescription = item['floter_text_description']; gmcNotes = item['notes']; @@ -4286,7 +4314,7 @@ class _addOnsDetailsState extends State { crossAxisAlignment: CrossAxisAlignment.start, children: [ Expanded( - flex: 9, + flex: Responsive.isDesktop(context) ? 9 : 7, child: Container( alignment: Alignment.centerLeft, child: Column( @@ -4307,7 +4335,9 @@ class _addOnsDetailsState extends State { Row( children: [ Text( - gmcPolicyName ?? '', + Responsive.isDesktop(context) + ? gmcPolicyName + : gmcPolicyType, textAlign: TextAlign.left, style: GoogleFonts.poppins( fontSize: @@ -4338,7 +4368,7 @@ class _addOnsDetailsState extends State { ], ))), Expanded( - flex: 3, + flex: Responsive.isDesktop(context) ? 3 : 5, child: Container( alignment: Alignment.centerRight, child: Column( @@ -4399,7 +4429,7 @@ class _addOnsDetailsState extends State { '${data['name']} ~ ${data['relationship']} ~ DOB : $formattedDate', style: GoogleFonts.poppins( fontSize: - Responsive.isDesktop(context) ? 18 : 16, + Responsive.isDesktop(context) ? 18 : 14, color: Color(0xFF232526), ), ), @@ -4428,6 +4458,7 @@ class _addOnsDetailsState extends State { print(item); String? gpaPolicyName = item['Policy_Name']; + String? gpaPolicyType = item['type']; String? gpaECardDownload = item['eCardDownload']; String? gpaSumInsured; List gpaMappedFamilyFloaters = []; @@ -4481,7 +4512,7 @@ class _addOnsDetailsState extends State { child: Text( gpaSelfDetails ?? '', style: GoogleFonts.poppins( - fontSize: Responsive.isDesktop(context) ? 18 : 16, + fontSize: Responsive.isDesktop(context) ? 18 : 14, color: Color(0xFF232526), ), ), @@ -4515,7 +4546,7 @@ class _addOnsDetailsState extends State { crossAxisAlignment: CrossAxisAlignment.start, children: [ Expanded( - flex: 9, + flex: Responsive.isDesktop(context) ? 9 : 7, child: Container( alignment: Alignment.centerLeft, child: Column( @@ -4533,7 +4564,9 @@ class _addOnsDetailsState extends State { Row( children: [ Text( - gpaPolicyName ?? 'NA', + Responsive.isDesktop(context) + ? '$gpaPolicyName' + : '$gpaPolicyType', textAlign: TextAlign.left, style: GoogleFonts.poppins( fontSize: @@ -4562,7 +4595,7 @@ class _addOnsDetailsState extends State { ), ), Expanded( - flex: 3, + flex: Responsive.isDesktop(context) ? 3 : 5, child: Container( alignment: Alignment.centerRight, child: Column( diff --git a/lib/pages/enrollment/empDetails.dart b/lib/pages/enrollment/empDetails.dart index 1b9f0b8..fd36324 100644 --- a/lib/pages/enrollment/empDetails.dart +++ b/lib/pages/enrollment/empDetails.dart @@ -56,6 +56,7 @@ class _empDetailsState extends State { dynamic gmcSelfRelationship; dynamic gmcSelfDetails; dynamic gmcPolicyName; + dynamic gmcPolicyType; dynamic gmcNotes; dynamic gmcGridMaster; dynamic gmcSumInsured; @@ -1545,6 +1546,7 @@ class _empDetailsState extends State { print(item); String? gpaPolicyName = item['Policy_Name']; + String? gpaPolicyType = item['type']; String? gpaECardDownload = item['eCardDownload']; String? gpaSumInsured; List gpaMappedFamilyFloaters = []; @@ -1694,7 +1696,7 @@ class _empDetailsState extends State { crossAxisAlignment: CrossAxisAlignment.start, children: [ Expanded( - flex: 9, + flex: Responsive.isDesktop(context) ? 9 : 7, child: Container( alignment: Alignment.centerLeft, child: Column( @@ -1711,16 +1713,33 @@ class _empDetailsState extends State { ), Row( children: [ - Text( - gpaPolicyName ?? 'NA', - textAlign: TextAlign.left, - style: GoogleFonts.poppins( - fontSize: - Responsive.isDesktop(context) ? 20 : 14, - fontWeight: FontWeight.w600, - ), - ), - if (gpaECardDownload != null) + !Responsive.isDesktop(context) + ? Tooltip( + message: gpaPolicyType ?? 'NA', + child: Text( + gpaPolicyType ?? 'NA', + textAlign: TextAlign.left, + style: GoogleFonts.poppins( + fontSize: + Responsive.isDesktop(context) + ? 20 + : 14, + fontWeight: FontWeight.w600, + ), + ), + ) + : Text( + gpaPolicyName ?? 'NA', + textAlign: TextAlign.left, + style: GoogleFonts.poppins( + fontSize: + Responsive.isDesktop(context) + ? 20 + : 14, + fontWeight: FontWeight.w600, + ), + ), + if (item['eCardDownload'] != null) GestureDetector( onTap: () async { _launchURL(item['eCardDownload']); @@ -1741,7 +1760,7 @@ class _empDetailsState extends State { ), ), Expanded( - flex: 3, + flex: Responsive.isDesktop(context) ? 3 : 5, child: Container( alignment: Alignment.centerRight, child: Column( @@ -1795,6 +1814,7 @@ class _empDetailsState extends State { print(item); setState(() { gmcPolicyName = item['Policy_Name']; + gmcPolicyType = item['type']; gmcFloaterTextHeading = item['floter_text_heading']; gmcFloaterTextDescription = item['floter_text_description']; gmcNotes = item['notes']; @@ -2083,7 +2103,7 @@ class _empDetailsState extends State { crossAxisAlignment: CrossAxisAlignment.start, children: [ Expanded( - flex: 9, + flex: Responsive.isDesktop(context) ? 9 : 7, child: Container( alignment: Alignment.centerLeft, child: Column( @@ -2102,7 +2122,9 @@ class _empDetailsState extends State { Row( children: [ Text( - gmcPolicyName ?? '', + Responsive.isDesktop(context) + ? gmcPolicyName + : gmcPolicyType, textAlign: TextAlign.left, style: GoogleFonts.poppins( fontSize: @@ -2131,7 +2153,7 @@ class _empDetailsState extends State { ], ))), Expanded( - flex: 3, + flex: Responsive.isDesktop(context) ? 3 : 5, child: Container( alignment: Alignment.centerRight, child: Column( diff --git a/lib/pages/enrollment/empReview.dart b/lib/pages/enrollment/empReview.dart index fbf09ad..d3e79b5 100644 --- a/lib/pages/enrollment/empReview.dart +++ b/lib/pages/enrollment/empReview.dart @@ -53,6 +53,7 @@ class _empReviewDetailsState extends State { dynamic gmcSelfRelationship; dynamic gmcSelfDetails; dynamic gmcPolicyName; + dynamic gmcPolicyType; dynamic gmcNotes; dynamic gmcSumInsured; dynamic gmcTypeName; @@ -68,11 +69,12 @@ class _empReviewDetailsState extends State { dynamic siValue; dynamic addOnsDependentSumInsured; dynamic addOnsDependentPolicyName; + dynamic addOnsDependentPolicyType; dynamic addOnsFloaterTextHeading; dynamic addOnsDependentECardDownload; dynamic addOnsFamilyFloater; late DateTime? selectedDate; - int totalPayableAmt = 0; + double totalPayableAmt = 0.0; List> relationshipOptions = []; List> selectedRelationships = []; List> formDataList = []; @@ -82,16 +84,18 @@ class _empReviewDetailsState extends State { dynamic topUpSlabRates; dynamic topUpFamilyFloater; dynamic topUpPolicyName; + dynamic topUpPolicyType; dynamic topUpTypeName; - int topUpSiPremiumValue = 0; - int topUpSiPremiumGst = 0; - int topUpSiTotalAmt = 0; - int topUpParentSiPremiumValue = 0; - int topUpParentSiPremiumGst = 0; - int topUpParentSiTotalAmt = 0; - int addOnDependentPremiumValue = 0; - int addOnsDependentPremiumGst = 0; - int addOnsDependentTotalAmt = 0; + double topUpSiPremiumValue = 0.0; + double topUpSiPremiumGst = 0.0; + double topUpSiTotalAmt = 0.0; + double topUpParentSiPremiumValue = 0.0; + double topUpParentSiPremiumGst = 0.0; + double topUpParentSiTotalAmt = 0.0; + // int addOnDependentPremiumValue = 0; + double addOnDependentPremiumValue = 0.0; + double addOnsDependentPremiumGst = 0.0; + double addOnsDependentTotalAmt = 0.0; dynamic topUpSiValue; dynamic topUpSiSelectedSI; dynamic topUpSumInsured; @@ -105,6 +109,7 @@ class _empReviewDetailsState extends State { dynamic topUpParentClientPolicyId; dynamic topUpParentSlabRates; dynamic topUpParentPolicyName; + dynamic topUpParentPolicyType; dynamic topUpParentFamilyFloater; dynamic topUpParentMappedFamilyFloatersSi; dynamic topUpParentECardDownload; @@ -231,12 +236,16 @@ class _empReviewDetailsState extends State { // Access the first map in the list Map firstDependentListData = dependentDataList.first; // Get the value of topUpSiPremiumValue + print('150000000000'); addOnDependentPremiumValue = firstDependentListData['addOnDependentPremiumValue']; + print(addOnDependentPremiumValue); addOnsDependentPremiumGst = firstDependentListData['addOnsDependentPremiumGst']; + print(addOnsDependentPremiumGst); addOnsDependentTotalAmt = firstDependentListData['addOnsDependentTotalAmt']; + print(addOnsDependentTotalAmt); } } if (prefs.containsKey('siData') && @@ -377,6 +386,8 @@ class _empReviewDetailsState extends State { topUpPolicyName = await topUpSiPolicies['gmc_si_topup']['policy_name']; + topUpPolicyType = await topUpSiPolicies['gmc_si_topup']['type']; + topUpMappedFamilyFloatersSiArray = topUpSiPolicies['gmc_si_topup'] ['family_floaters_of_only_si_array']; print('topUpMappedFamilyFloatersSiArray'); @@ -437,6 +448,9 @@ class _empReviewDetailsState extends State { await topUpSiParentPolicies['gmc_si_parent_topup'] ['policy_name']; + topUpParentPolicyType = + await topUpSiParentPolicies['gmc_si_parent_topup']['type']; + topUpParentFamilyFloater = await topUpSiParentPolicies['gmc_si_parent_topup'] ['policy_terms']['family_floater']; @@ -527,6 +541,10 @@ class _empReviewDetailsState extends State { addOnsDependentPolicies['gmc_dependent_addon']['policy_name']; print(addOnsDependentPolicyName); + addOnsDependentPolicyType = + addOnsDependentPolicies['gmc_dependent_addon']['type']; + print(addOnsDependentPolicyType); + addOnsDependentMappedFamilyFloatersArray = await addOnsDependentPolicies['gmc_dependent_addon'] ['family_floaters_of_dependent_and_si_array']; @@ -1024,7 +1042,9 @@ class _empReviewDetailsState extends State { crossAxisAlignment: CrossAxisAlignment.start, children: [ Expanded( - flex: 9, + flex: Responsive.isDesktop(context) + ? 9 + : 7, child: Container( alignment: Alignment.centerLeft, child: Column( @@ -1047,7 +1067,10 @@ class _empReviewDetailsState extends State { Row( children: [ Text( - topUpPolicyName ?? '', + Responsive.isDesktop( + context) + ? topUpPolicyName + : topUpPolicyType, textAlign: TextAlign.left, style: GoogleFonts.poppins( @@ -1084,7 +1107,9 @@ class _empReviewDetailsState extends State { ], ))), Expanded( - flex: 3, + flex: Responsive.isDesktop(context) + ? 3 + : 5, child: Container( alignment: Alignment.centerRight, child: Column( @@ -1155,7 +1180,7 @@ class _empReviewDetailsState extends State { fontSize: Responsive.isDesktop(context) ? 18 - : 16, + : 14, color: Color(0xFF232526), ), ), @@ -1234,7 +1259,9 @@ class _empReviewDetailsState extends State { crossAxisAlignment: CrossAxisAlignment.start, children: [ Expanded( - flex: 9, + flex: Responsive.isDesktop(context) + ? 9 + : 7, child: Container( alignment: Alignment.centerLeft, child: Column( @@ -1260,8 +1287,10 @@ class _empReviewDetailsState extends State { children: [ Flexible( child: Text( - topUpParentPolicyName ?? - '', + Responsive.isDesktop( + context) + ? topUpParentPolicyName + : topUpParentPolicyType, textAlign: TextAlign.left, style: GoogleFonts @@ -1305,7 +1334,9 @@ class _empReviewDetailsState extends State { ], ))), Expanded( - flex: 3, + flex: Responsive.isDesktop(context) + ? 3 + : 5, child: Container( alignment: Alignment.centerRight, child: Column( @@ -1377,7 +1408,7 @@ class _empReviewDetailsState extends State { fontSize: Responsive.isDesktop(context) ? 18 - : 16, + : 14, color: Color(0xFF232526), ), ), @@ -1458,7 +1489,7 @@ class _empReviewDetailsState extends State { Expanded( flex: Responsive.isDesktop(context) ? 9 - : 8, + : 7, child: Container( alignment: Alignment.centerLeft, child: Column( @@ -1481,8 +1512,10 @@ class _empReviewDetailsState extends State { Row( children: [ Text( - addOnsDependentPolicyName ?? - '', + Responsive.isDesktop( + context) + ? addOnsDependentPolicyName + : addOnsDependentPolicyType, textAlign: TextAlign.left, style: GoogleFonts.poppins( @@ -1521,7 +1554,7 @@ class _empReviewDetailsState extends State { Expanded( flex: Responsive.isDesktop(context) ? 3 - : 4, + : 5, child: Container( alignment: Alignment.centerRight, child: Column( @@ -1592,7 +1625,7 @@ class _empReviewDetailsState extends State { fontSize: Responsive.isDesktop(context) ? 18 - : 16, + : 14, color: Color(0xFF232526), ), ), @@ -2286,6 +2319,7 @@ class _empReviewDetailsState extends State { print(item); String? gpaPolicyName = item['Policy_Name']; + String? gpaPolicyType = item['type']; String? gpaECardDownload = item['eCardDownload']; String? gpaSumInsured; List gpaMappedFamilyFloaters = []; @@ -2339,7 +2373,7 @@ class _empReviewDetailsState extends State { child: Text( gpaSelfDetails ?? '', style: GoogleFonts.poppins( - fontSize: Responsive.isDesktop(context) ? 18 : 16, + fontSize: Responsive.isDesktop(context) ? 18 : 14, color: Color(0xFF232526), ), ), @@ -2373,7 +2407,7 @@ class _empReviewDetailsState extends State { crossAxisAlignment: CrossAxisAlignment.start, children: [ Expanded( - flex: 9, + flex: Responsive.isDesktop(context) ? 9 : 7, child: Container( alignment: Alignment.centerLeft, child: Column( @@ -2390,7 +2424,9 @@ class _empReviewDetailsState extends State { Row( children: [ Text( - gpaPolicyName ?? 'NA', + Responsive.isDesktop(context) + ? '$gpaPolicyName' + : '$gpaPolicyType', textAlign: TextAlign.left, style: GoogleFonts.poppins( fontSize: @@ -2419,7 +2455,7 @@ class _empReviewDetailsState extends State { ), ), Expanded( - flex: 3, + flex: Responsive.isDesktop(context) ? 3 : 5, child: Container( alignment: Alignment.centerRight, child: Column( @@ -2471,6 +2507,7 @@ class _empReviewDetailsState extends State { for (var item in data) { setState(() { gmcPolicyName = item['Policy_Name']; + gmcPolicyType = item['type']; gmcFloaterTextHeading = item['floter_text_heading']; gmcFloaterTextDescription = item['floter_text_description']; gmcNotes = item['notes']; @@ -2525,7 +2562,7 @@ class _empReviewDetailsState extends State { crossAxisAlignment: CrossAxisAlignment.start, children: [ Expanded( - flex: 9, + flex: Responsive.isDesktop(context) ? 9 : 7, child: Container( alignment: Alignment.centerLeft, child: Column( @@ -2546,7 +2583,9 @@ class _empReviewDetailsState extends State { Row( children: [ Text( - gmcPolicyName ?? '', + Responsive.isDesktop(context) + ? gmcPolicyName + : gmcPolicyType, textAlign: TextAlign.left, style: GoogleFonts.poppins( fontSize: @@ -2577,7 +2616,7 @@ class _empReviewDetailsState extends State { ], ))), Expanded( - flex: 3, + flex: Responsive.isDesktop(context) ? 3 : 5, child: Container( alignment: Alignment.centerRight, child: Column( @@ -2638,7 +2677,7 @@ class _empReviewDetailsState extends State { '${data['name']} ~ ${data['relationship']} ~ DOB : $formattedDate', style: GoogleFonts.poppins( fontSize: - Responsive.isDesktop(context) ? 18 : 16, + Responsive.isDesktop(context) ? 18 : 14, color: Color(0xFF232526), ), ), diff --git a/lib/pages/login.dart b/lib/pages/login.dart index 12fbb34..6800f53 100644 --- a/lib/pages/login.dart +++ b/lib/pages/login.dart @@ -304,7 +304,7 @@ class _loginState extends State { child: Image.asset( 'assets/nhance_app_logo.png', width: 150, - height: 150, + height: 100, )), ), if (!Responsive.isMobile(context) && diff --git a/lib/pages/postEnrollment/chatbot.dart b/lib/pages/postEnrollment/chatbot.dart index 27d0495..743dd53 100644 --- a/lib/pages/postEnrollment/chatbot.dart +++ b/lib/pages/postEnrollment/chatbot.dart @@ -1,3 +1,5 @@ +import 'dart:convert'; + import 'package:dash_chat_2/dash_chat_2.dart'; import 'package:flutter/material.dart'; import 'package:nhance_app_pwa/pages/postEnrollment/service/api_service.dart'; @@ -5,6 +7,7 @@ import 'package:shared_preferences/shared_preferences.dart'; import 'package:url_launcher/url_launcher.dart'; import '../../customAppBar/customAppBar.dart'; import '../../customAppBar/customAppBarChatbot.dart'; +import '../../customAppBar/responsive.dart'; import 'data.dart'; class chatbot extends StatefulWidget { @@ -31,14 +34,101 @@ class _chatbotState extends State { void initState() { super.initState(); apiService = ApiService(context); // Initialize ApiService here - quickReplyOptions(); + checkMessageBackup(); } @override void dispose() { + // saveChatMessages(); + clearChatMessages(); // Save chat messages when closing super.dispose(); } + Future checkMessageBackup() async { + print('checkMessageBackup'); + final SharedPreferences prefs = await SharedPreferences.getInstance(); + if (prefs.containsKey('chat_messages') && + prefs.containsKey('chat_messages') != []) { + print('loadChatMessages'); + loadChatMessages(); // Load stored messages + } else { + print('quickReplyOptions'); + quickReplyOptions(); + } + } + + // Save chat messages to SharedPreferences + Future saveChatMessages() async { + final SharedPreferences prefs = await SharedPreferences.getInstance(); + List chatMessages = + messages.map((message) => jsonEncode(message.toJson())).toList(); + await prefs.setStringList('chat_messages', chatMessages); + } + + // Load chat messages from SharedPreferences + Future loadChatMessages() async { + print('quickReplyOptions Function'); + final SharedPreferences prefs = await SharedPreferences.getInstance(); + if (prefs.containsKey('chat_messages')) { + List? chatMessages = prefs.getStringList('chat_messages'); + print('chatMessages $chatMessages'); + if (chatMessages != null) { + print('chatMessages'); + setState(() { + messages = chatMessages + .map((message) => ChatMessage.fromJson(jsonDecode(message))) + .toList(); + isOptionStatus = 1; + requestStatus = 'Start'; + // final storedDataString = prefs.getString('messageBackDetails'); + // print('Stored Data String: $storedDataString'); // Debugging step + + // if (storedDataString != null) { + // try { + // // dynamic chatApiData = response['data']; + // dynamic chatApiData = + // jsonDecode(storedDataString); // Decode the JSON string + // print('Decoded Data: $chatApiData'); // Debugging step + // isOptionStatus = 1; + // requestStatus = 'Start'; + // // Proceed with your logic if the string is valid JSON + // returnMessage = chatApiData['text']; + // isOptionStatus = chatApiData['is_option']; + // requestStatus = chatApiData['request_for']; + // navigation = chatApiData['navigation']; + // navigation_type = chatApiData['navigation_type']; + // empCode = prefs.getString('empCode'); + // empClientBranchId = prefs.getString('empClientBranchId'); + // client_id = prefs.getString('client_id'); + // + // if (chatApiData.containsKey('mobile_no')) { + // mobileNo = chatApiData['mobile_no']; + // } + // if (chatApiData.containsKey('policy_id')) { + // policyID = chatApiData['policy_id']; + // } + // print( + // '$returnMessage,$isOptionStatus,$requestStatus,$navigation,$navigation_type,$empCode,$empClientBranchId,$client_id,$mobileNo,$policyID'); + // } catch (e) { + // print('Error decoding JSON: $e'); // Handle JSON parsing errors + // } + // } else { + // print('No data found in SharedPreferences'); + // } + }); + } + } + } + + // Clear chat messages + Future clearChatMessages() async { + final SharedPreferences prefs = await SharedPreferences.getInstance(); + await prefs.remove('chat_messages'); + setState(() { + messages.clear(); + }); + } + void quickReplyOptions() async { final SharedPreferences prefs = await SharedPreferences.getInstance(); empCode = prefs.getString('empCode'); @@ -125,6 +215,8 @@ class _chatbotState extends State { } Future processMessage(String messageText) async { + final SharedPreferences prefs = await SharedPreferences.getInstance(); + await prefs.remove('messageBackDetails'); print('Processing message: $messageText'); // Add a placeholder loading message with an animated loader @@ -170,6 +262,8 @@ class _chatbotState extends State { chatBotDataApi = chatBotDataApi.map((key, value) => MapEntry(key, value.toString())); + print('chatBotDataApi $chatBotDataApi'); + // Simulate API call with a delay of 2 seconds await Future.delayed(Duration(seconds: 2)); // final response = await apiService.getBotDetails(requestStatus, @@ -190,6 +284,9 @@ class _chatbotState extends State { if (response['status'] == 'success') { dynamic chatApiData = response['data']; print('chatApiData : $chatApiData'); + final SharedPreferences prefs = await SharedPreferences.getInstance(); + await prefs.setString('messageBackDetails', jsonEncode(chatApiData)); + dynamic optionsData = chatApiData['options']; returnMessage = chatApiData['text']; isOptionStatus = chatApiData['is_option']; @@ -215,15 +312,22 @@ class _chatbotState extends State { returnMessage == 'open_sales_form' || returnMessage == 'open_gmc_form' || returnMessage == 'open_gpa_form') { + saveChatMessages(); var details = {'claimsDetails': '', 'fromClaimPage': 1}; Navigator.pushNamed(context, 'planclaimsform', arguments: details); } + } else if (navigation_type == 'view') { + print(returnMessage); + saveChatMessages(); + Navigator.pushNamed(context, 'help'); } else if (navigation_type == 'dialpad') { print(returnMessage); + saveChatMessages(); _openDialPad(returnMessage); } else if (navigation_type == 'mail') { print(returnMessage); + saveChatMessages(); _openEmail(returnMessage); } } else { @@ -319,7 +423,73 @@ class _chatbotState extends State { @override Widget build(BuildContext context) { return Scaffold( - appBar: CustomAppBarChatbot(), + appBar: PreferredSize( + preferredSize: const Size.fromHeight(kToolbarHeight), + child: ClipRRect( + borderRadius: BorderRadius.only( + bottomLeft: Radius.circular(32.0), + bottomRight: Radius.circular(32.0), + ), + child: AppBar( + backgroundColor: const Color(0xFFFFFBDE), + elevation: 0, // Set background color for AppBar + toolbarHeight: kToolbarHeight, + titleSpacing: 0.0, + automaticallyImplyLeading: false, + title: Padding( + padding: Responsive.isDesktop(context) + ? EdgeInsets.symmetric(horizontal: 16.0) + : EdgeInsets.symmetric(horizontal: 10), + child: Row( + children: [ + // Logo Column + Expanded( + flex: Responsive.isDesktop(context) ? 3 : 9, + child: Row( + mainAxisAlignment: Responsive.isDesktop(context) + ? MainAxisAlignment.spaceEvenly + : MainAxisAlignment + .start, // Adjust the alignment as needed + children: [ + Container( + margin: EdgeInsets.only( + top: 10, bottom: 10, left: 10, right: 10), + width: Responsive.isDesktop(context) ? 230 : 170, + height: Responsive.isDesktop(context) ? 230 : 170, + child: Image.asset( + 'assets/nhance_client_logo.png', + fit: BoxFit.contain, // Adjust the fit as needed + ), + ), + ], + ), + ), + // AdaptiveNavBar Column + + Expanded( + flex: Responsive.isDesktop(context) ? 11 : 1, + child: GestureDetector( + onTap: () async { + final SharedPreferences prefs = + await SharedPreferences.getInstance(); + await prefs.remove('messageBackDetails'); + clearChatMessages(); + Navigator.pop(context); + }, + child: Icon( + Icons + .close_outlined, // Replace with your desired icon + size: 24.0, // Adjust the icon size + color: Colors.black, // Adjust the icon color + ), + ), + ), + ], + ), + ), + ), + ) // CustomAppBar implementation here + ), body: DashChat( currentUser: user, onSend: (ChatMessage m) { diff --git a/lib/pages/postEnrollment/claims.dart b/lib/pages/postEnrollment/claims.dart index efa8218..61a6bd1 100644 --- a/lib/pages/postEnrollment/claims.dart +++ b/lib/pages/postEnrollment/claims.dart @@ -22,6 +22,7 @@ class claims extends StatefulWidget { } class _claimsState extends State { + bool isLoading = false; late ApiService apiService; int _currentIndex = 0; bool isActive = true; @@ -106,12 +107,16 @@ class _claimsState extends State { if (client_id == null || empCodeString == null) { return; } + setState(() { + isLoading = true; + }); print('check 1'); final response = await apiService.getActiveAndInactivePolicyDetails( client_id!, empCodeString!, status, client_branch_id); print('check 1'); if (response['status'] == 'success') { setState(() { + isLoading = false; policyList = response['data']; }); print(policyList); @@ -492,7 +497,7 @@ class _claimsState extends State { .isDesktop( context) ? 15 - : 7), + : 5), // primary: Color(0xFF000000), ), child: Text( @@ -502,7 +507,7 @@ class _claimsState extends State { .isDesktop( context) ? 18 - : 14, + : 13, fontWeight: FontWeight.w500, color: Color( @@ -517,7 +522,7 @@ class _claimsState extends State { Responsive.isDesktop( context) ? 18 - : 14, + : 13, fontWeight: FontWeight.w400, color: Color(0xFF636363), ), @@ -557,7 +562,7 @@ class _claimsState extends State { .isDesktop( context) ? 15 - : 7), + : 5), // primary: Color(0xFF000000), ), child: Text( @@ -568,7 +573,7 @@ class _claimsState extends State { .isDesktop( context) ? 18 - : 14, + : 13, color: Color(0xFF000000), fontWeight: @@ -584,7 +589,7 @@ class _claimsState extends State { Responsive.isDesktop( context) ? 18 - : 14, + : 13, fontWeight: FontWeight.w400, color: Color(0xFF636363), ), @@ -616,9 +621,20 @@ class _claimsState extends State { trackClaimsList), // Replace 'yourDataList' with your actual data list ), ), - SizedBox(height: Responsive.isDesktop(context) ? 40 : 10), + SizedBox(height: Responsive.isDesktop(context) ? 40 : 70), ]), )), + if (isLoading) + Container( + color: Color(0x98FFFCE5), // Semi-transparent background + child: Center( + child: // Your GIF loader widget + Image.asset( + height: 60, + width: 60, + 'assets/nhance-loader.gif'), // Adjust path to your GIF loader + ), + ), if (Responsive.isDesktop(context)) Align( alignment: Alignment.bottomCenter, diff --git a/lib/pages/postEnrollment/claimtracklist.dart b/lib/pages/postEnrollment/claimtracklist.dart index 01db188..0074e24 100644 --- a/lib/pages/postEnrollment/claimtracklist.dart +++ b/lib/pages/postEnrollment/claimtracklist.dart @@ -23,6 +23,7 @@ class claimtracklist extends StatefulWidget { class _claimtracklistformState extends State { late ApiService apiService; dynamic _token; + bool isLoading = false; dynamic empCodeString; dynamic empPrimaryId; dynamic client_id; @@ -129,6 +130,9 @@ class _claimtracklistformState extends State { } void sendClaimsMessage(Map formData) async { + setState(() { + isLoading = true; + }); try { formData = formData.map((key, value) => MapEntry(key, value.toString())); @@ -138,6 +142,9 @@ class _claimtracklistformState extends State { messageController.clear(); ToastHelper.showSuccessToast(context, 'Saved Successfully...'); messageController.clear(); + setState(() { + isLoading = false; + }); Navigator.pushNamed(context, 'claims', arguments: 0); print('Form data sent successfully.'); } else { @@ -496,6 +503,17 @@ class _claimtracklistformState extends State { SizedBox(height: Responsive.isDesktop(context) ? 40 : 10), ]), )), + if (isLoading) + Container( + color: Color(0x98FFFCE5), // Semi-transparent background + child: Center( + child: // Your GIF loader widget + Image.asset( + height: 60, + width: 60, + 'assets/nhance-loader.gif'), // Adjust path to your GIF loader + ), + ), if (Responsive.isDesktop(context)) Align( alignment: Alignment.bottomCenter, diff --git a/lib/pages/postEnrollment/help.dart b/lib/pages/postEnrollment/help.dart index 20d5dcb..cc5948e 100644 --- a/lib/pages/postEnrollment/help.dart +++ b/lib/pages/postEnrollment/help.dart @@ -23,6 +23,7 @@ class help extends StatefulWidget { } class _helpState extends State { + bool isLoading = false; late ApiService apiService; int _currentIndex = 0; bool isActive = true; @@ -130,6 +131,9 @@ class _helpState extends State { if (client_id == null || empCodeString == null) { return; } + setState(() { + isLoading = true; + }); print('check 1'); final response = await apiService.getTrackClaimsList(empMobileNo!, empCodeString!); @@ -148,6 +152,7 @@ class _helpState extends State { reversedClaimsClosedList = List>.from(trackClaimsClosedList); trackClaimsClosedList = reversedClaimsClosedList.reversed.toList(); + isLoading = false; }); print(trackClaimsList); } else { @@ -558,7 +563,7 @@ class _helpState extends State { .isDesktop( context) ? 15 - : 7), + : 5), // primary: Color(0xFF000000), ), child: Text( @@ -568,7 +573,7 @@ class _helpState extends State { .isDesktop( context) ? 18 - : 14, + : 13, fontWeight: FontWeight.w500, color: Color( @@ -583,7 +588,7 @@ class _helpState extends State { Responsive.isDesktop( context) ? 18 - : 14, + : 13, fontWeight: FontWeight.w400, color: Color(0xFF636363), ), @@ -623,7 +628,7 @@ class _helpState extends State { .isDesktop( context) ? 15 - : 7), + : 5), // primary: Color(0xFF000000), ), child: Text( @@ -634,7 +639,7 @@ class _helpState extends State { .isDesktop( context) ? 18 - : 14, + : 13, color: Color(0xFF000000), fontWeight: @@ -650,7 +655,7 @@ class _helpState extends State { Responsive.isDesktop( context) ? 18 - : 14, + : 13, fontWeight: FontWeight.w400, color: Color(0xFF636363), ), @@ -683,9 +688,20 @@ class _helpState extends State { trackClaimsClosedList), // Replace 'yourDataList' with your actual data list ), ), - SizedBox(height: Responsive.isDesktop(context) ? 40 : 10), + SizedBox(height: Responsive.isDesktop(context) ? 40 : 70), ]), )), + if (isLoading) + Container( + color: Color(0x98FFFCE5), // Semi-transparent background + child: Center( + child: // Your GIF loader widget + Image.asset( + height: 60, + width: 60, + 'assets/nhance-loader.gif'), // Adjust path to your GIF loader + ), + ), if (Responsive.isDesktop(context)) Align( alignment: Alignment.bottomCenter, diff --git a/lib/pages/postEnrollment/home.dart b/lib/pages/postEnrollment/home.dart index 4c3c5b5..3f1e07f 100644 --- a/lib/pages/postEnrollment/home.dart +++ b/lib/pages/postEnrollment/home.dart @@ -22,6 +22,7 @@ class MyApp extends StatefulWidget { } class _MyAppState extends State { + bool isLoadingGif = false; late ApiService apiService; int _currentIndex = 0; bool isActive = true; @@ -91,12 +92,16 @@ class _MyAppState extends State { if (client_id == null || empCodeString == null) { return; } + setState(() { + isLoadingGif = true; + }); print('check 1'); final response = await apiService.getActiveAndInactivePolicyDetails( client_id!, empCodeString!, status, client_branch_id); print('check 1'); if (response['status'] == 'success') { setState(() { + isLoadingGif = false; policyList = response['data']; print('policyList $policyList'); emp_name = response['emp_name']; @@ -200,16 +205,16 @@ class _MyAppState extends State { ), ], ), - Text( - 'Lorem ipsum dolor sit amet', - textAlign: TextAlign.left, - style: GoogleFonts.poppins( - fontSize: - Responsive.isDesktop(context) ? 12 : 14, - fontWeight: FontWeight.w400, - color: Color(0xFF7A7A7A), - ), - ), + // Text( + // 'Lorem ipsum dolor sit amet', + // textAlign: TextAlign.left, + // style: GoogleFonts.poppins( + // fontSize: + // Responsive.isDesktop(context) ? 12 : 14, + // fontWeight: FontWeight.w400, + // color: Color(0xFF7A7A7A), + // ), + // ), ], ))), ], @@ -253,7 +258,7 @@ class _MyAppState extends State { textAlign: TextAlign.center, style: GoogleFonts.poppins( fontSize: - Responsive.isDesktop(context) ? 18 : 14, + Responsive.isDesktop(context) ? 18 : 12, fontWeight: FontWeight.w500, color: Color(0xFF404040), ), @@ -408,16 +413,16 @@ class _MyAppState extends State { ), ], ), - Text( - 'Lorem ipsum dolor sit amet', - textAlign: TextAlign.left, - style: GoogleFonts.poppins( - fontSize: - Responsive.isDesktop(context) ? 12 : 14, - fontWeight: FontWeight.w400, - color: Color(0xFF7A7A7A), - ), - ), + // Text( + // 'Lorem ipsum dolor sit amet', + // textAlign: TextAlign.left, + // style: GoogleFonts.poppins( + // fontSize: + // Responsive.isDesktop(context) ? 12 : 14, + // fontWeight: FontWeight.w400, + // color: Color(0xFF7A7A7A), + // ), + // ), ], ))), ], @@ -482,7 +487,7 @@ class _MyAppState extends State { .isDesktop( context) ? 12 - : 7, + : 5, ), ), child: Text( @@ -493,7 +498,7 @@ class _MyAppState extends State { .isDesktop( context) ? 18 - : 14, + : 13, fontWeight: FontWeight.w500, color: @@ -510,7 +515,7 @@ class _MyAppState extends State { Responsive.isDesktop( context) ? 18 - : 14, + : 13, fontWeight: FontWeight.w400, color: Color(0xFF636363), ), @@ -551,7 +556,7 @@ class _MyAppState extends State { .isDesktop( context) ? 12 - : 7, + : 5, ), ), child: Text( @@ -562,7 +567,7 @@ class _MyAppState extends State { .isDesktop( context) ? 18 - : 14, + : 13, fontWeight: FontWeight.w500, color: @@ -579,7 +584,7 @@ class _MyAppState extends State { Responsive.isDesktop( context) ? 18 - : 14, + : 13, fontWeight: FontWeight.w400, color: Color(0xFF636363), ), @@ -601,9 +606,20 @@ class _MyAppState extends State { ...generateCards(policyList), ], ), - SizedBox(height: Responsive.isDesktop(context) ? 40 : 10), + SizedBox(height: Responsive.isDesktop(context) ? 40 : 70), ]), )), + if (isLoadingGif) + Container( + color: Color(0x98FFFCE5), // Semi-transparent background + child: Center( + child: // Your GIF loader widget + Image.asset( + height: 60, + width: 60, + 'assets/nhance-loader.gif'), // Adjust path to your GIF loader + ), + ), if (Responsive.isDesktop(context)) Align( alignment: Alignment.bottomCenter, @@ -671,11 +687,10 @@ class _MyAppState extends State { shrinkWrap: true, physics: NeverScrollableScrollPhysics(), gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( - crossAxisCount: Responsive.isDesktop(context) ? 2 : 1, - crossAxisSpacing: 20.0, - mainAxisSpacing: 20.0, - childAspectRatio: Responsive.isDesktop(context) ? 3.2 : 3.5, - ), + crossAxisCount: Responsive.isDesktop(context) ? 2 : 1, + crossAxisSpacing: 20.0, + mainAxisSpacing: 20.0, + childAspectRatio: Responsive.isDesktop(context) ? 3.2 : 2.8), itemCount: data.length, itemBuilder: (BuildContext context, int index) { var item = data[index]; @@ -729,7 +744,7 @@ class _MyAppState extends State { Row( children: [ Expanded( - flex: 8, + flex: 7, child: Column( crossAxisAlignment: CrossAxisAlignment.start, @@ -751,7 +766,7 @@ class _MyAppState extends State { ), ), Expanded( - flex: 4, + flex: 5, child: Column( crossAxisAlignment: CrossAxisAlignment.end, @@ -778,7 +793,7 @@ class _MyAppState extends State { Row( children: [ Expanded( - flex: 8, + flex: 6, child: Column( crossAxisAlignment: CrossAxisAlignment.start, @@ -800,7 +815,7 @@ class _MyAppState extends State { ), ), Expanded( - flex: 3, + flex: 5, child: Column( crossAxisAlignment: CrossAxisAlignment.end, diff --git a/lib/pages/postEnrollment/planclaimsform.dart b/lib/pages/postEnrollment/planclaimsform.dart index 7dfbc0f..80a1957 100644 --- a/lib/pages/postEnrollment/planclaimsform.dart +++ b/lib/pages/postEnrollment/planclaimsform.dart @@ -20,6 +20,7 @@ class planclaimsform extends StatefulWidget { class _planclaimsformState extends State { late ApiService apiService; + bool isLoading = false; dynamic _token; dynamic empCodeString; dynamic empPrimaryId; @@ -227,6 +228,9 @@ class _planclaimsformState extends State { } Future fetchDepartmentList() async { + setState(() { + isLoading = true; + }); try { final response = await apiService.fetchDepartmentList(); if (response['departments'] != null) { @@ -239,6 +243,7 @@ class _planclaimsformState extends State { 'private': department['private'], }; }).toList(); + isLoading = false; }); if (fromClaimsPage == 0) { setInitialServiceId(departmentList); @@ -373,6 +378,9 @@ class _planclaimsformState extends State { } Future sendFormDataToApi() async { + setState(() { + isLoading = true; + }); print(employeePolicyList[0]['name']); print('Help $filteredPoliciesList'); try { @@ -444,6 +452,9 @@ class _planclaimsformState extends State { ToastHelper.showSuccessToast(context, response['message']); serviceId = null; departmentList.clear(); + setState(() { + isLoading = false; + }); Navigator.pushNamed(context, 'claims'); print('Form data submitted successfully'); } else { @@ -875,6 +886,17 @@ class _planclaimsformState extends State { SizedBox(height: Responsive.isDesktop(context) ? 40 : 60), ]), )), + if (isLoading) + Container( + color: Color(0x98FFFCE5), // Semi-transparent background + child: Center( + child: // Your GIF loader widget + Image.asset( + height: 60, + width: 60, + 'assets/nhance-loader.gif'), // Adjust path to your GIF loader + ), + ), if (Responsive.isDesktop(context)) Align( alignment: Alignment.bottomCenter, diff --git a/lib/pages/postEnrollment/policies.dart b/lib/pages/postEnrollment/policies.dart index a6461cb..add5c11 100644 --- a/lib/pages/postEnrollment/policies.dart +++ b/lib/pages/postEnrollment/policies.dart @@ -934,7 +934,7 @@ class _policiesState extends State { ), ), ])), - SizedBox(height: Responsive.isDesktop(context) ? 40 : 10), + SizedBox(height: Responsive.isDesktop(context) ? 40 : 70), ], ), ), diff --git a/lib/pages/postEnrollment/profile.dart b/lib/pages/postEnrollment/profile.dart index ed81129..da9e147 100644 --- a/lib/pages/postEnrollment/profile.dart +++ b/lib/pages/postEnrollment/profile.dart @@ -24,6 +24,7 @@ class profile extends StatefulWidget { } class _profileState extends State { + bool isLoading = false; late ApiService apiService; final AuthService _authService = AuthService(); int _currentIndex = 0; @@ -108,6 +109,9 @@ class _profileState extends State { if (client_id == null || empCodeString == null) { return; } + setState(() { + isLoading = true; + }); print('check 1'); final response = await apiService.getSelfEmployeeProfileDetails( client_id!, empCodeString!, client_branch_id!); @@ -130,6 +134,7 @@ class _profileState extends State { selfFamilyFloaterKey = selfDetails['family_floater_key']; // print(clientDetails); selfEmpStatus = selfDetails['emp_status']; + isLoading = false; }); final SharedPreferences prefs = await SharedPreferences.getInstance(); prefs.setString('selfEmpStatus', selfEmpStatus); @@ -642,6 +647,17 @@ class _profileState extends State { SizedBox(height: Responsive.isDesktop(context) ? 40 : 10), ]), )), + if (isLoading) + Container( + color: Color(0x98FFFCE5), // Semi-transparent background + child: Center( + child: // Your GIF loader widget + Image.asset( + height: 60, + width: 60, + 'assets/nhance-loader.gif'), // Adjust path to your GIF loader + ), + ), if (Responsive.isDesktop(context)) Align( alignment: Alignment.bottomCenter, diff --git a/lib/pages/postEnrollment/wellness.dart b/lib/pages/postEnrollment/wellness.dart index 31c3811..4d2f186 100644 --- a/lib/pages/postEnrollment/wellness.dart +++ b/lib/pages/postEnrollment/wellness.dart @@ -93,10 +93,10 @@ class _wellnessState extends State { mainAxisAlignment: MainAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center, children: [ - SvgPicture.string( - SvgService.getSvg('help'), - width: 200, - height: 200, + Image.asset( + 'assets/wellness.png', // Path to your image in assets folder + width: 250, + height: 250, ), ], ))),