merge
This commit is contained in:
commit
b7b17c928d
@ -69,7 +69,8 @@ class _ClaimHistoryPopupState extends State<ClaimHistoryPopup> {
|
|||||||
// isLoading = false;
|
// isLoading = false;
|
||||||
});
|
});
|
||||||
setState(() {
|
setState(() {
|
||||||
getClaimsHistoryList = List<Map<String, dynamic>>.from(response['data']);
|
getClaimsHistoryList =
|
||||||
|
List<Map<String, dynamic>>.from(response['data']);
|
||||||
// originalData = getCDPolicies;
|
// originalData = getCDPolicies;
|
||||||
// filteredData = List.from(originalData);
|
// filteredData = List.from(originalData);
|
||||||
// print('filteredData');
|
// print('filteredData');
|
||||||
@ -367,7 +368,6 @@ class _ClaimHistoryPopupState extends State<ClaimHistoryPopup> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
String _getStepTitle(int index) {
|
String _getStepTitle(int index) {
|
||||||
switch (index) {
|
switch (index) {
|
||||||
case 0:
|
case 0:
|
||||||
@ -416,9 +416,9 @@ class _ClaimHistoryPopupState extends State<ClaimHistoryPopup> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Widget _buildKeyValue(String title, String value) {
|
Widget _buildKeyValue(String title, String value) {
|
||||||
final displayValue = (value == null || value.trim().isEmpty) ? 'N/A' : value;
|
final displayValue =
|
||||||
|
(value == null || value.trim().isEmpty) ? 'N/A' : value;
|
||||||
return Column(
|
return Column(
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
@ -466,4 +466,3 @@ class DottedLinePainter extends CustomPainter {
|
|||||||
@override
|
@override
|
||||||
bool shouldRepaint(CustomPainter oldDelegate) => false;
|
bool shouldRepaint(CustomPainter oldDelegate) => false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -32,7 +32,19 @@ class excelVerify extends StatefulWidget {
|
|||||||
final String cardInsurer_name;
|
final String cardInsurer_name;
|
||||||
final String cardPolicy_name;
|
final String cardPolicy_name;
|
||||||
final String cardPolicy_ExpDate;
|
final String cardPolicy_ExpDate;
|
||||||
const excelVerify({Key? key, required this.ClientId, required this.ClientPoliyId, required this.clientBranchId, required this.Token, required this.TokenType, required this.cardType, required this.cardPolicyNo, required this.cardInsurer_name, required this.cardPolicy_name, required this.cardPolicy_ExpDate}) : super(key: key);
|
const excelVerify(
|
||||||
|
{Key? key,
|
||||||
|
required this.ClientId,
|
||||||
|
required this.ClientPoliyId,
|
||||||
|
required this.clientBranchId,
|
||||||
|
required this.Token,
|
||||||
|
required this.TokenType,
|
||||||
|
required this.cardType,
|
||||||
|
required this.cardPolicyNo,
|
||||||
|
required this.cardInsurer_name,
|
||||||
|
required this.cardPolicy_name,
|
||||||
|
required this.cardPolicy_ExpDate})
|
||||||
|
: super(key: key);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
State<excelVerify> createState() => _excelVerifyState();
|
State<excelVerify> createState() => _excelVerifyState();
|
||||||
@ -608,9 +620,11 @@ class _excelVerifyState extends State<excelVerify> {
|
|||||||
// invalidRelationships = 0;
|
// invalidRelationships = 0;
|
||||||
// dobAgeCheckCount = 0;
|
// dobAgeCheckCount = 0;
|
||||||
// nonExcelFilteredData = [];
|
// nonExcelFilteredData = [];
|
||||||
Navigator.pushNamed(
|
// Navigator.pushNamed(
|
||||||
context, 'hrPolicyDetails',
|
// context, 'hrPolicyDetails',
|
||||||
arguments: argumentsData);
|
// arguments: argumentsData);
|
||||||
|
|
||||||
|
Navigator.pop(context);
|
||||||
},
|
},
|
||||||
child: Text(
|
child: Text(
|
||||||
'Close',
|
'Close',
|
||||||
|
|||||||
@ -310,7 +310,7 @@ class _hrDashboardState extends State<hrDashboard>
|
|||||||
print("hr_id -$hr_id");
|
print("hr_id -$hr_id");
|
||||||
print("token -$token");
|
print("token -$token");
|
||||||
|
|
||||||
// isLoading = true;
|
isLoading = true;
|
||||||
// setState(() {
|
// setState(() {
|
||||||
// _isLoading = true;
|
// _isLoading = true;
|
||||||
// });
|
// });
|
||||||
|
|||||||
@ -20,6 +20,7 @@ import 'package:intl/intl.dart';
|
|||||||
import 'package:path_provider/path_provider.dart';
|
import 'package:path_provider/path_provider.dart';
|
||||||
import 'package:path/path.dart' as path;
|
import 'package:path/path.dart' as path;
|
||||||
import 'package:collection/collection.dart';
|
import 'package:collection/collection.dart';
|
||||||
|
import 'package:url_launcher/url_launcher.dart';
|
||||||
import 'customAppBar/customFooter.dart';
|
import 'customAppBar/customFooter.dart';
|
||||||
|
|
||||||
class hrPolicyDetails extends StatefulWidget {
|
class hrPolicyDetails extends StatefulWidget {
|
||||||
@ -106,14 +107,14 @@ class _HrPolicyDetailsState extends State<hrPolicyDetails>
|
|||||||
print('10');
|
print('10');
|
||||||
|
|
||||||
final response = widget.TokenType == "post"
|
final response = widget.TokenType == "post"
|
||||||
? await apiService.getEmployeeAndDependenceToApi(
|
? await apiService.getEmployeeAndDependenceToApi(widget.ClientId,
|
||||||
widget.ClientId, widget.ClientPoliyId, widget.clientBranchId, widget.Token)
|
widget.ClientPoliyId, widget.clientBranchId, widget.Token)
|
||||||
: await apiService.getEmployeeAndDependenceToApiPre(
|
: await apiService.getEmployeeAndDependenceToApiPre(widget.ClientId,
|
||||||
widget.ClientId, widget.ClientPoliyId, widget.clientBranchId, widget.Token);
|
widget.ClientPoliyId, widget.clientBranchId, widget.Token);
|
||||||
|
|
||||||
if (response['status'] == 'success') {
|
if (response['status'] == 'success') {
|
||||||
setState(() {
|
setState(() {
|
||||||
// isLoading = false;
|
isLoading = false;
|
||||||
});
|
});
|
||||||
setState(() {
|
setState(() {
|
||||||
getCDPolicies = List<Map<String, dynamic>>.from(response['data']);
|
getCDPolicies = List<Map<String, dynamic>>.from(response['data']);
|
||||||
@ -124,7 +125,7 @@ class _HrPolicyDetailsState extends State<hrPolicyDetails>
|
|||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
setState(() {
|
setState(() {
|
||||||
// isLoading = false;
|
isLoading = false;
|
||||||
});
|
});
|
||||||
|
|
||||||
// ToastHelper.showWarningToast(
|
// ToastHelper.showWarningToast(
|
||||||
@ -133,7 +134,7 @@ class _HrPolicyDetailsState extends State<hrPolicyDetails>
|
|||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
setState(() {
|
setState(() {
|
||||||
// isLoading = false;
|
isLoading = false;
|
||||||
});
|
});
|
||||||
print('Exception occurred: $e');
|
print('Exception occurred: $e');
|
||||||
} finally {
|
} finally {
|
||||||
@ -143,6 +144,18 @@ class _HrPolicyDetailsState extends State<hrPolicyDetails>
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Future<void> _launchURL(String url) async {
|
||||||
|
final Uri uri = Uri.parse(url); // Parse the URL properly
|
||||||
|
print('_launchURL $uri');
|
||||||
|
if (uri != null) {
|
||||||
|
print('If $uri');
|
||||||
|
await launchUrl(uri, mode: LaunchMode.externalApplication);
|
||||||
|
} else {
|
||||||
|
print('else $uri');
|
||||||
|
throw 'Could not launch $url';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void search(String query) {
|
void search(String query) {
|
||||||
print(query);
|
print(query);
|
||||||
// Check if the query is empty
|
// Check if the query is empty
|
||||||
@ -257,9 +270,15 @@ class _HrPolicyDetailsState extends State<hrPolicyDetails>
|
|||||||
// TODO: implement build
|
// TODO: implement build
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
appBar: CustomAppBar(),
|
appBar: CustomAppBar(),
|
||||||
body: Container(
|
backgroundColor: Color(0xFFEFF3F6),
|
||||||
color: Color(0xFFEFF3F6),
|
body: Stack(children: [
|
||||||
padding: const EdgeInsets.symmetric(vertical: 20, horizontal: 40),
|
// color: Color(0xFFEFF3F6),
|
||||||
|
|
||||||
|
// padding: const EdgeInsets.symmetric(vertical: 20, horizontal: 40),
|
||||||
|
SingleChildScrollView(
|
||||||
|
scrollDirection: Axis.vertical,
|
||||||
|
child: Container(
|
||||||
|
padding: EdgeInsets.only(top: 30, bottom: 200, left: 50, right: 50),
|
||||||
child: Column(
|
child: Column(
|
||||||
children: [
|
children: [
|
||||||
Container(
|
Container(
|
||||||
@ -274,7 +293,8 @@ class _HrPolicyDetailsState extends State<hrPolicyDetails>
|
|||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
IconButton(
|
IconButton(
|
||||||
padding: EdgeInsets.zero, // Removes default padding
|
padding:
|
||||||
|
EdgeInsets.zero, // Removes default padding
|
||||||
constraints: BoxConstraints(),
|
constraints: BoxConstraints(),
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
Navigator.pop(context);
|
Navigator.pop(context);
|
||||||
@ -303,7 +323,8 @@ class _HrPolicyDetailsState extends State<hrPolicyDetails>
|
|||||||
mainAxisAlignment: MainAxisAlignment.start,
|
mainAxisAlignment: MainAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
Text(
|
Text(
|
||||||
"${widget.cardType} - ${widget.cardPolicyNo} " ?? '',
|
"${widget.cardType} - ${widget.cardPolicyNo} " ??
|
||||||
|
'',
|
||||||
style: GoogleFonts.poppins(
|
style: GoogleFonts.poppins(
|
||||||
color: Colors.black,
|
color: Colors.black,
|
||||||
fontSize: 14,
|
fontSize: 14,
|
||||||
@ -378,18 +399,21 @@ class _HrPolicyDetailsState extends State<hrPolicyDetails>
|
|||||||
Navigator.push(
|
Navigator.push(
|
||||||
context,
|
context,
|
||||||
MaterialPageRoute(
|
MaterialPageRoute(
|
||||||
builder: (context) =>
|
builder: (context) => excelVerify(
|
||||||
excelVerify(
|
ClientId:
|
||||||
ClientId: widget.ClientId, // <-- from map
|
widget.ClientId, // <-- from map
|
||||||
ClientPoliyId: widget.ClientPoliyId,
|
ClientPoliyId: widget.ClientPoliyId,
|
||||||
clientBranchId: widget.clientBranchId,
|
clientBranchId: widget.clientBranchId,
|
||||||
Token: widget.Token,
|
Token: widget.Token,
|
||||||
TokenType: widget.TokenType,
|
TokenType: widget.TokenType,
|
||||||
cardType: widget.cardType,
|
cardType: widget.cardType,
|
||||||
cardPolicyNo: widget.cardPolicyNo,
|
cardPolicyNo: widget.cardPolicyNo,
|
||||||
cardInsurer_name: widget.cardInsurer_name,
|
cardInsurer_name:
|
||||||
cardPolicy_name: widget.cardPolicy_name,
|
widget.cardInsurer_name,
|
||||||
cardPolicy_ExpDate: widget.cardPolicy_ExpDate,
|
cardPolicy_name:
|
||||||
|
widget.cardPolicy_name,
|
||||||
|
cardPolicy_ExpDate:
|
||||||
|
widget.cardPolicy_ExpDate,
|
||||||
|
|
||||||
// Token: widget.Token,
|
// Token: widget.Token,
|
||||||
// ClientId: widget.ClientId,
|
// ClientId: widget.ClientId,
|
||||||
@ -405,7 +429,8 @@ class _HrPolicyDetailsState extends State<hrPolicyDetails>
|
|||||||
},
|
},
|
||||||
style: ElevatedButton.styleFrom(
|
style: ElevatedButton.styleFrom(
|
||||||
backgroundColor: Color(0xFFE26728),
|
backgroundColor: Color(0xFFE26728),
|
||||||
padding: EdgeInsets.all(10), // Internal padding
|
padding:
|
||||||
|
EdgeInsets.all(10), // Internal padding
|
||||||
shape: RoundedRectangleBorder(
|
shape: RoundedRectangleBorder(
|
||||||
borderRadius: BorderRadius.circular(
|
borderRadius: BorderRadius.circular(
|
||||||
10), // Border radius
|
10), // Border radius
|
||||||
@ -435,7 +460,8 @@ class _HrPolicyDetailsState extends State<hrPolicyDetails>
|
|||||||
},
|
},
|
||||||
style: ElevatedButton.styleFrom(
|
style: ElevatedButton.styleFrom(
|
||||||
backgroundColor: Color(0xFFE26728),
|
backgroundColor: Color(0xFFE26728),
|
||||||
padding: EdgeInsets.all(10), // Internal padding
|
padding:
|
||||||
|
EdgeInsets.all(10), // Internal padding
|
||||||
shape: RoundedRectangleBorder(
|
shape: RoundedRectangleBorder(
|
||||||
borderRadius: BorderRadius.circular(
|
borderRadius: BorderRadius.circular(
|
||||||
10), // Border radius
|
10), // Border radius
|
||||||
@ -480,6 +506,27 @@ class _HrPolicyDetailsState extends State<hrPolicyDetails>
|
|||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
),
|
||||||
|
|
||||||
|
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
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Align(
|
||||||
|
alignment: Alignment.bottomCenter,
|
||||||
|
child: Container(
|
||||||
|
width: double.infinity, // Make the footer full width
|
||||||
|
child: CustomFooter(),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
]),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -749,8 +796,11 @@ class _HrPolicyDetailsState extends State<hrPolicyDetails>
|
|||||||
child: Row(
|
child: Row(
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
children: [
|
children: [
|
||||||
|
if (item['ecard_download_link'] != null)
|
||||||
GestureDetector(
|
GestureDetector(
|
||||||
onTap: () {},
|
onTap: () {
|
||||||
|
_launchURL(item['ecard_download_link']);
|
||||||
|
},
|
||||||
child: Container(
|
child: Container(
|
||||||
height: 35,
|
height: 35,
|
||||||
width: 35,
|
width: 35,
|
||||||
@ -759,7 +809,8 @@ class _HrPolicyDetailsState extends State<hrPolicyDetails>
|
|||||||
borderRadius: BorderRadius.circular(8),
|
borderRadius: BorderRadius.circular(8),
|
||||||
),
|
),
|
||||||
child: Padding(
|
child: Padding(
|
||||||
padding: EdgeInsets.all(6), // You can adjust this value
|
padding: EdgeInsets.all(
|
||||||
|
6), // You can adjust this value
|
||||||
child: Image.asset(
|
child: Image.asset(
|
||||||
'assets/credit_card.png',
|
'assets/credit_card.png',
|
||||||
fit: BoxFit.contain,
|
fit: BoxFit.contain,
|
||||||
@ -780,15 +831,14 @@ class _HrPolicyDetailsState extends State<hrPolicyDetails>
|
|||||||
borderRadius: BorderRadius.circular(8),
|
borderRadius: BorderRadius.circular(8),
|
||||||
),
|
),
|
||||||
child: Padding(
|
child: Padding(
|
||||||
padding: EdgeInsets.all(6), // You can adjust this value
|
padding: EdgeInsets.all(
|
||||||
|
6), // You can adjust this value
|
||||||
child: Image.asset(
|
child: Image.asset(
|
||||||
'assets/claim.png',
|
'assets/claim.png',
|
||||||
fit: BoxFit.contain,
|
fit: BoxFit.contain,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
||||||
|
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|||||||
@ -30,6 +30,7 @@ class _ActivePolicieState extends State<ActivePolicies> {
|
|||||||
dynamic getCardArrays = [];
|
dynamic getCardArrays = [];
|
||||||
int selectedIndex = 1;
|
int selectedIndex = 1;
|
||||||
int stausVal = 1;
|
int stausVal = 1;
|
||||||
|
bool isLoading = false;
|
||||||
|
|
||||||
// List<Map<String, dynamic>> getCardArrays = [
|
// List<Map<String, dynamic>> getCardArrays = [
|
||||||
// {
|
// {
|
||||||
@ -108,7 +109,7 @@ class _ActivePolicieState extends State<ActivePolicies> {
|
|||||||
print("hr_id -$hr_id");
|
print("hr_id -$hr_id");
|
||||||
print("token -$token");
|
print("token -$token");
|
||||||
|
|
||||||
// isLoading = true;
|
isLoading = true;
|
||||||
// setState(() {
|
// setState(() {
|
||||||
// _isLoading = true;
|
// _isLoading = true;
|
||||||
// });
|
// });
|
||||||
@ -124,7 +125,7 @@ class _ActivePolicieState extends State<ActivePolicies> {
|
|||||||
// clintID!, clintBranchId!, hr_id, token);
|
// clintID!, clintBranchId!, hr_id, token);
|
||||||
print('IN1');
|
print('IN1');
|
||||||
if (response['status'] == 'success') {
|
if (response['status'] == 'success') {
|
||||||
// isLoading = false;
|
isLoading = false;
|
||||||
setState(() {
|
setState(() {
|
||||||
print('response');
|
print('response');
|
||||||
print(response['data']);
|
print(response['data']);
|
||||||
@ -141,6 +142,7 @@ class _ActivePolicieState extends State<ActivePolicies> {
|
|||||||
print('IN2');
|
print('IN2');
|
||||||
print("getCardArrays9 - $getCardArrays");
|
print("getCardArrays9 - $getCardArrays");
|
||||||
} else {
|
} else {
|
||||||
|
isLoading = false;
|
||||||
print('API request failed with status');
|
print('API request failed with status');
|
||||||
setState(() {
|
setState(() {
|
||||||
getCardArrays = [];
|
getCardArrays = [];
|
||||||
@ -211,10 +213,21 @@ class _ActivePolicieState extends State<ActivePolicies> {
|
|||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
SizedBox(
|
const SizedBox(
|
||||||
height: 15,
|
height: 15,
|
||||||
),
|
),
|
||||||
Column(
|
isLoading
|
||||||
|
? Expanded(
|
||||||
|
// 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
|
||||||
|
),
|
||||||
|
)
|
||||||
|
: Column(
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
children: [
|
children: [
|
||||||
Container(
|
Container(
|
||||||
@ -237,7 +250,8 @@ class _ActivePolicieState extends State<ActivePolicies> {
|
|||||||
)
|
)
|
||||||
: GridView.builder(
|
: GridView.builder(
|
||||||
itemCount: getCardArrays.length,
|
itemCount: getCardArrays.length,
|
||||||
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
|
gridDelegate:
|
||||||
|
SliverGridDelegateWithFixedCrossAxisCount(
|
||||||
crossAxisCount: 4,
|
crossAxisCount: 4,
|
||||||
crossAxisSpacing: 20,
|
crossAxisSpacing: 20,
|
||||||
mainAxisSpacing: 20,
|
mainAxisSpacing: 20,
|
||||||
|
|||||||
@ -85,7 +85,7 @@ class _CdPolicieState extends State<CdPolicies> {
|
|||||||
Future<void> getCDPoliciesDetails() async {
|
Future<void> getCDPoliciesDetails() async {
|
||||||
print('9');
|
print('9');
|
||||||
setState(() {
|
setState(() {
|
||||||
// isLoading = true;
|
isLoading = true;
|
||||||
});
|
});
|
||||||
try {
|
try {
|
||||||
print('10');
|
print('10');
|
||||||
@ -93,7 +93,7 @@ class _CdPolicieState extends State<CdPolicies> {
|
|||||||
widget.empClientId, widget.empHrId, widget.postToken);
|
widget.empClientId, widget.empHrId, widget.postToken);
|
||||||
if (response['status'] == 'success') {
|
if (response['status'] == 'success') {
|
||||||
setState(() {
|
setState(() {
|
||||||
// isLoading = false;
|
isLoading = false;
|
||||||
});
|
});
|
||||||
setState(() {
|
setState(() {
|
||||||
getCDPolicies = List<Map<String, dynamic>>.from(response['data']);
|
getCDPolicies = List<Map<String, dynamic>>.from(response['data']);
|
||||||
@ -104,7 +104,7 @@ class _CdPolicieState extends State<CdPolicies> {
|
|||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
setState(() {
|
setState(() {
|
||||||
// isLoading = false;
|
isLoading = false;
|
||||||
});
|
});
|
||||||
|
|
||||||
// ToastHelper.showWarningToast(
|
// ToastHelper.showWarningToast(
|
||||||
@ -113,12 +113,12 @@ class _CdPolicieState extends State<CdPolicies> {
|
|||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
setState(() {
|
setState(() {
|
||||||
// isLoading = false;
|
isLoading = false;
|
||||||
});
|
});
|
||||||
print('Exception occurred: $e');
|
print('Exception occurred: $e');
|
||||||
} finally {
|
} finally {
|
||||||
setState(() {
|
setState(() {
|
||||||
// _isLoading = false;
|
_isLoading = false;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -268,33 +268,9 @@ class _CdPolicieState extends State<CdPolicies> {
|
|||||||
],
|
],
|
||||||
),
|
),
|
||||||
SizedBox(height: 20),
|
SizedBox(height: 20),
|
||||||
Row(
|
isLoading
|
||||||
children: [
|
? Expanded(
|
||||||
Expanded(
|
// color: Color(0x98FFFCE5), // semi-transparent overlay
|
||||||
child: SingleChildScrollView(
|
|
||||||
child: _buildCDDataTable(context),
|
|
||||||
),
|
|
||||||
)
|
|
||||||
],
|
|
||||||
),
|
|
||||||
|
|
||||||
],
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
Widget _buildCDDataTable(BuildContext context) {
|
|
||||||
if (filteredData.isEmpty) {
|
|
||||||
return const SizedBox(
|
|
||||||
height: 50,
|
|
||||||
child: Center(child: Text('No available data')),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Loader overlay
|
|
||||||
if (isLoading)
|
|
||||||
return Container(
|
|
||||||
color: Color(0x98FFFCE5), // semi-transparent overlay
|
|
||||||
child: Center(
|
child: Center(
|
||||||
child: Image.asset(
|
child: Image.asset(
|
||||||
'assets/nhance-loader.gif',
|
'assets/nhance-loader.gif',
|
||||||
@ -302,7 +278,42 @@ class _CdPolicieState extends State<CdPolicies> {
|
|||||||
width: 60,
|
width: 60,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
)
|
||||||
|
: Expanded(
|
||||||
|
child: Row(
|
||||||
|
children: [
|
||||||
|
SingleChildScrollView(
|
||||||
|
child: _buildCDDataTable(context),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
);
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Widget _buildCDDataTable(BuildContext context) {
|
||||||
|
// Loader overlay
|
||||||
|
|
||||||
|
if (filteredData.isEmpty) {
|
||||||
|
return const SizedBox(
|
||||||
|
height: 50,
|
||||||
|
child: Center(child: Text('No available data')),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
// return ListView.builder(
|
||||||
|
// itemCount: _paginatedData.length + 2, // +1 for header, +1 for pagination
|
||||||
|
// itemBuilder: (context, index) {
|
||||||
|
// if (index == 0) return _buildHeader();
|
||||||
|
// if (index == _paginatedData.length + 1)
|
||||||
|
// return _buildPagination(context);
|
||||||
|
//
|
||||||
|
// final item = _paginatedData[index - 1];
|
||||||
|
// return _buildDataRow(item);
|
||||||
|
// },
|
||||||
|
// );
|
||||||
|
|
||||||
return Column(
|
return Column(
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
@ -413,10 +424,111 @@ class _CdPolicieState extends State<CdPolicies> {
|
|||||||
),
|
),
|
||||||
);
|
);
|
||||||
}).toList(),
|
}).toList(),
|
||||||
|
],
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
Row(
|
Widget _buildDataRow(Map<String, dynamic> item) {
|
||||||
mainAxisAlignment: MainAxisAlignment.end,
|
return Container(
|
||||||
|
padding: const EdgeInsets.symmetric(vertical: 6, horizontal: 16),
|
||||||
|
margin: const EdgeInsets.only(top: 10),
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
color: Color(0xFFE0F7F9),
|
||||||
|
border: const Border(
|
||||||
|
bottom: BorderSide(color: Color(0xFFD7E9EB), width: 1),
|
||||||
|
),
|
||||||
|
borderRadius: BorderRadius.circular(8),
|
||||||
|
),
|
||||||
|
child: Row(
|
||||||
children: [
|
children: [
|
||||||
|
Expanded(
|
||||||
|
flex: 4,
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
Text(item['insurer_name'] ?? '-', style: _dataBold),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Expanded(
|
||||||
|
flex: 4,
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
Text(item['cd_master_account_no'] ?? '-', style: _dataBold),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Expanded(
|
||||||
|
flex: 3,
|
||||||
|
child: Text("₹${item['balance'] ?? '0'}", style: _dataBold),
|
||||||
|
),
|
||||||
|
Expanded(
|
||||||
|
flex: 1,
|
||||||
|
child: Center(
|
||||||
|
child: IconButton(
|
||||||
|
icon: const Icon(Icons.remove_red_eye_outlined),
|
||||||
|
onPressed: () {
|
||||||
|
Navigator.push(
|
||||||
|
context,
|
||||||
|
MaterialPageRoute(
|
||||||
|
builder: (context) => cdTransactionDetails(
|
||||||
|
insurerName: item['insurer_name'],
|
||||||
|
cdMasterAccountNo: item['cd_master_account_no'],
|
||||||
|
insurerId: item['insurer_id'],
|
||||||
|
cd_ac_pk: item['cd_ac_pk'],
|
||||||
|
empClientId: widget.empClientId,
|
||||||
|
postToken: widget.postToken),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
},
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Widget _buildHeader() {
|
||||||
|
return Container(
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
color: Color(0xFF00A6A6),
|
||||||
|
borderRadius: BorderRadius.circular(6),
|
||||||
|
),
|
||||||
|
padding: const EdgeInsets.symmetric(vertical: 12, horizontal: 16),
|
||||||
|
child: const Row(
|
||||||
|
children: [
|
||||||
|
Expanded(flex: 4, child: Text('Insurer Name', style: _headerStyle)),
|
||||||
|
Expanded(
|
||||||
|
flex: 4, child: Text('CD Account number', style: _headerStyle)),
|
||||||
|
Expanded(
|
||||||
|
flex: 4, child: Text('Current Balance', style: _headerStyle)),
|
||||||
|
Expanded(flex: 4, child: Text('Actions', style: _headerStyle)),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
static final _dataBold = GoogleFonts.poppins(
|
||||||
|
fontSize: 12,
|
||||||
|
fontWeight: FontWeight.w400,
|
||||||
|
color: Color(0xFF000000),
|
||||||
|
);
|
||||||
|
|
||||||
|
static final _dataSub = GoogleFonts.poppins(
|
||||||
|
fontSize: 10,
|
||||||
|
fontWeight: FontWeight.w300,
|
||||||
|
color: Color(0xFF585757),
|
||||||
|
);
|
||||||
|
|
||||||
|
static const _headerStyle = TextStyle(
|
||||||
|
color: Colors.white,
|
||||||
|
fontWeight: FontWeight.bold,
|
||||||
|
);
|
||||||
|
|
||||||
|
Widget _buildPagination(BuildContext context) {
|
||||||
|
return Row(mainAxisAlignment: MainAxisAlignment.end, children: [
|
||||||
Padding(
|
Padding(
|
||||||
padding: const EdgeInsets.symmetric(vertical: 12),
|
padding: const EdgeInsets.symmetric(vertical: 12),
|
||||||
child: Row(
|
child: Row(
|
||||||
@ -436,7 +548,8 @@ class _CdPolicieState extends State<CdPolicies> {
|
|||||||
onChanged: (newValue) {
|
onChanged: (newValue) {
|
||||||
setState(() {
|
setState(() {
|
||||||
_rowsPerPage = newValue!;
|
_rowsPerPage = newValue!;
|
||||||
_currentPage = 1;
|
_currentPage =
|
||||||
|
1; // Reset to first page when rows per page changes
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
@ -474,8 +587,8 @@ class _CdPolicieState extends State<CdPolicies> {
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
IconButton(
|
IconButton(
|
||||||
onPressed: _currentPage <
|
onPressed:
|
||||||
(filteredData.length / _rowsPerPage).ceil()
|
_currentPage < (filteredData.length / _rowsPerPage).ceil()
|
||||||
? () {
|
? () {
|
||||||
setState(() {
|
setState(() {
|
||||||
_currentPage++;
|
_currentPage++;
|
||||||
@ -487,10 +600,7 @@ class _CdPolicieState extends State<CdPolicies> {
|
|||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
]);
|
||||||
),
|
|
||||||
],
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -8,6 +8,7 @@ import 'package:http/http.dart' as http;
|
|||||||
import 'package:collection/collection.dart';
|
import 'package:collection/collection.dart';
|
||||||
import 'package:jwt_decode/jwt_decode.dart';
|
import 'package:jwt_decode/jwt_decode.dart';
|
||||||
|
|
||||||
|
import '../../claimshistory.dart';
|
||||||
import '../../models/environment.dart';
|
import '../../models/environment.dart';
|
||||||
import '../api_service.dart';
|
import '../api_service.dart';
|
||||||
|
|
||||||
@ -119,14 +120,14 @@ class _ClaimsPolicieState extends State<ClaimsPolicies> {
|
|||||||
final response = await apiService.getClaimPoliciesToApi(widget.postToken);
|
final response = await apiService.getClaimPoliciesToApi(widget.postToken);
|
||||||
if (response['status'] == 'success') {
|
if (response['status'] == 'success') {
|
||||||
setState(() {
|
setState(() {
|
||||||
// isLoading = false;
|
isLoading = false;
|
||||||
});
|
});
|
||||||
setState(() {
|
setState(() {
|
||||||
getClaimPoliciesApi = Map<String, dynamic>.from(response['data']);
|
getClaimPoliciesApi = Map<String, dynamic>.from(response['data']);
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
setState(() {
|
setState(() {
|
||||||
// isLoading = false;
|
isLoading = false;
|
||||||
});
|
});
|
||||||
|
|
||||||
// ToastHelper.showWarningToast(
|
// ToastHelper.showWarningToast(
|
||||||
@ -227,7 +228,18 @@ class _ClaimsPolicieState extends State<ClaimsPolicies> {
|
|||||||
height: 10,
|
height: 10,
|
||||||
),
|
),
|
||||||
|
|
||||||
Expanded(
|
isLoading
|
||||||
|
? Expanded(
|
||||||
|
// 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
|
||||||
|
),
|
||||||
|
)
|
||||||
|
: Expanded(
|
||||||
child: _buildClaimsDataTable(context),
|
child: _buildClaimsDataTable(context),
|
||||||
),
|
),
|
||||||
// Expanded(
|
// Expanded(
|
||||||
@ -692,24 +704,46 @@ class _ClaimsPolicieState extends State<ClaimsPolicies> {
|
|||||||
child: Text(item['ticket_created_date'] ?? '-', style: _dataBold),
|
child: Text(item['ticket_created_date'] ?? '-', style: _dataBold),
|
||||||
),
|
),
|
||||||
Expanded(
|
Expanded(
|
||||||
flex: 2,
|
flex: 1,
|
||||||
child: Row(
|
child: Row(
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
children: [
|
children: [
|
||||||
GestureDetector(
|
GestureDetector(
|
||||||
onTap: () {},
|
onTap: () {
|
||||||
|
showDialog(
|
||||||
|
context: context,
|
||||||
|
barrierDismissible: true,
|
||||||
|
builder: (BuildContext context) {
|
||||||
|
return Dialog(
|
||||||
|
backgroundColor: Colors.transparent,
|
||||||
|
insetPadding: EdgeInsets.all(16),
|
||||||
|
child: ClaimHistoryPopup(
|
||||||
|
ticket_id: item['id'],
|
||||||
|
empName: item['emp_name'], // example
|
||||||
|
empCode: item['emp_code'], // example
|
||||||
|
policyType: item['policy_type'],
|
||||||
|
clientPolicyNo: item['client_policy_no'],
|
||||||
|
claimAmount: item['claim_amount'],
|
||||||
|
claimNo: item['claim_no'],
|
||||||
|
postToken: widget.postToken,
|
||||||
|
),
|
||||||
|
);
|
||||||
|
},
|
||||||
|
);
|
||||||
|
},
|
||||||
child: Container(
|
child: Container(
|
||||||
height: 30,
|
height: 35,
|
||||||
width: 30,
|
width: 35,
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: Color(0xFF86D1D4),
|
color: Color(0xFF86D1D4),
|
||||||
borderRadius: BorderRadius.circular(8),
|
borderRadius: BorderRadius.circular(8),
|
||||||
),
|
),
|
||||||
child: Padding(
|
child: Padding(
|
||||||
padding: EdgeInsets.all(6), // You can adjust this value
|
padding: EdgeInsets.all(10), // You can adjust this value
|
||||||
child: Image.asset(
|
child: Image.asset(
|
||||||
'assets/claimHistory.png',
|
'assets/claimHistory.png',
|
||||||
fit: BoxFit.contain,
|
fit: BoxFit.contain,
|
||||||
|
width: 5,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@ -1106,6 +1140,12 @@ class _ClaimsPolicieState extends State<ClaimsPolicies> {
|
|||||||
height: 40,
|
height: 40,
|
||||||
child: DropdownSearch<String>(
|
child: DropdownSearch<String>(
|
||||||
selectedItem: selectedPolicyTypeName,
|
selectedItem: selectedPolicyTypeName,
|
||||||
|
dropdownBuilder: (context, selectedItem) {
|
||||||
|
return Text(
|
||||||
|
selectedItem ?? "",
|
||||||
|
style: TextStyle(fontSize: 12),
|
||||||
|
);
|
||||||
|
},
|
||||||
items: (String? filter, _) {
|
items: (String? filter, _) {
|
||||||
return ticketTypeList
|
return ticketTypeList
|
||||||
.map<String>((item) => item['type_name'].toString())
|
.map<String>((item) => item['type_name'].toString())
|
||||||
@ -1123,7 +1163,6 @@ class _ClaimsPolicieState extends State<ClaimsPolicies> {
|
|||||||
},
|
},
|
||||||
decoratorProps: DropDownDecoratorProps(
|
decoratorProps: DropDownDecoratorProps(
|
||||||
decoration: InputDecoration(
|
decoration: InputDecoration(
|
||||||
constraints: BoxConstraints(maxHeight: 200),
|
|
||||||
hintText: "Select Policy Type",
|
hintText: "Select Policy Type",
|
||||||
hintStyle: TextStyle(fontSize: 12),
|
hintStyle: TextStyle(fontSize: 12),
|
||||||
filled: true,
|
filled: true,
|
||||||
@ -1144,9 +1183,12 @@ class _ClaimsPolicieState extends State<ClaimsPolicies> {
|
|||||||
EdgeInsets.symmetric(horizontal: 12, vertical: 10),
|
EdgeInsets.symmetric(horizontal: 12, vertical: 10),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
popupProps: const PopupProps.menu(
|
popupProps: PopupProps.menu(
|
||||||
|
menuProps: const MenuProps(color: Colors.red),
|
||||||
|
fit: FlexFit.loose,
|
||||||
|
constraints: const BoxConstraints(maxHeight: 250),
|
||||||
showSearchBox: true,
|
showSearchBox: true,
|
||||||
searchFieldProps: TextFieldProps(
|
searchFieldProps: const TextFieldProps(
|
||||||
decoration: InputDecoration(
|
decoration: InputDecoration(
|
||||||
hintText: "Search Policy Type",
|
hintText: "Search Policy Type",
|
||||||
hintStyle: TextStyle(fontSize: 12),
|
hintStyle: TextStyle(fontSize: 12),
|
||||||
@ -1207,7 +1249,7 @@ class _ClaimsPolicieState extends State<ClaimsPolicies> {
|
|||||||
"Claim Status",
|
"Claim Status",
|
||||||
style: TextStyle(fontSize: 12),
|
style: TextStyle(fontSize: 12),
|
||||||
),
|
),
|
||||||
SizedBox(
|
const SizedBox(
|
||||||
height: 3,
|
height: 3,
|
||||||
),
|
),
|
||||||
SizedBox(
|
SizedBox(
|
||||||
@ -1229,42 +1271,15 @@ class _ClaimsPolicieState extends State<ClaimsPolicies> {
|
|||||||
"Selected selectedClaimStatusName: $selectedClaimStatusName");
|
"Selected selectedClaimStatusName: $selectedClaimStatusName");
|
||||||
print("Selected selectedClaimStatus: $selectedClaimStatus");
|
print("Selected selectedClaimStatus: $selectedClaimStatus");
|
||||||
},
|
},
|
||||||
|
dropdownBuilder: (context, selectedItem) {
|
||||||
// selectedItem: selectedClaimStatus,
|
return Text(
|
||||||
// selectedItem: getTypeNameById(selectedClaimStatus),
|
selectedItem ?? "",
|
||||||
// items: (String? filter, _) {
|
style: TextStyle(fontSize: 12),
|
||||||
// List<String> allItems = claimStatusList
|
);
|
||||||
// .map<String>((item) => item['claim_status'].toString())
|
},
|
||||||
// .toList();
|
|
||||||
//
|
|
||||||
// if (filter == null || filter.isEmpty) return allItems;
|
|
||||||
//
|
|
||||||
// return allItems
|
|
||||||
// .where((element) =>
|
|
||||||
// element.toLowerCase().contains(filter.toLowerCase()))
|
|
||||||
// .toList();
|
|
||||||
// },
|
|
||||||
|
|
||||||
//
|
|
||||||
// onChanged: (value) {
|
|
||||||
// if (!mounted) return;
|
|
||||||
// print("Selected ticket_type11: $value");
|
|
||||||
//
|
|
||||||
// final id = getIdByTypeName(value);
|
|
||||||
// print("getIdByTypeName returned: $id");
|
|
||||||
//
|
|
||||||
// if (id != null) {
|
|
||||||
// setState(() {
|
|
||||||
// selectedClaimStatus = id;
|
|
||||||
// });
|
|
||||||
// } else {
|
|
||||||
// print("No match found for $value");
|
|
||||||
// }
|
|
||||||
// },
|
|
||||||
|
|
||||||
decoratorProps: DropDownDecoratorProps(
|
decoratorProps: DropDownDecoratorProps(
|
||||||
decoration: InputDecoration(
|
decoration: InputDecoration(
|
||||||
constraints: BoxConstraints(maxHeight: 200),
|
// suffixStyle: TextStyle(color: Colors.red),
|
||||||
hintText: "Select Policy Type",
|
hintText: "Select Policy Type",
|
||||||
hintStyle: TextStyle(fontSize: 12),
|
hintStyle: TextStyle(fontSize: 12),
|
||||||
filled: true,
|
filled: true,
|
||||||
@ -1283,12 +1298,17 @@ class _ClaimsPolicieState extends State<ClaimsPolicies> {
|
|||||||
),
|
),
|
||||||
contentPadding:
|
contentPadding:
|
||||||
EdgeInsets.symmetric(horizontal: 12, vertical: 10),
|
EdgeInsets.symmetric(horizontal: 12, vertical: 10),
|
||||||
|
labelStyle: TextStyle(fontSize: 19, color: Colors.red),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
popupProps: PopupProps.menu(
|
popupProps: const PopupProps.menu(
|
||||||
|
fit: FlexFit.loose,
|
||||||
|
constraints: BoxConstraints(maxHeight: 250),
|
||||||
showSearchBox: true,
|
showSearchBox: true,
|
||||||
searchFieldProps: TextFieldProps(
|
searchFieldProps: TextFieldProps(
|
||||||
|
style: TextStyle(fontSize: 14.0, color: Colors.red),
|
||||||
decoration: InputDecoration(
|
decoration: InputDecoration(
|
||||||
|
labelStyle: TextStyle(fontSize: 19, color: Colors.red),
|
||||||
hintText: "Search Claim Status",
|
hintText: "Search Claim Status",
|
||||||
hintStyle: TextStyle(fontSize: 12),
|
hintStyle: TextStyle(fontSize: 12),
|
||||||
contentPadding:
|
contentPadding:
|
||||||
|
|||||||
@ -29,6 +29,7 @@ class _PreEnrollmentState extends State<PreEnrollment> {
|
|||||||
late ApiService apiService;
|
late ApiService apiService;
|
||||||
dynamic getCardArrays = [];
|
dynamic getCardArrays = [];
|
||||||
int selectedIndex = 0;
|
int selectedIndex = 0;
|
||||||
|
bool isLoading = false;
|
||||||
// List<Map<String, dynamic>> getCardArrays = [
|
// List<Map<String, dynamic>> getCardArrays = [
|
||||||
// {
|
// {
|
||||||
// "client_policy_id": 392,
|
// "client_policy_id": 392,
|
||||||
@ -91,7 +92,7 @@ class _PreEnrollmentState extends State<PreEnrollment> {
|
|||||||
print("hr_id -$hr_id");
|
print("hr_id -$hr_id");
|
||||||
print("token -$token");
|
print("token -$token");
|
||||||
|
|
||||||
// isLoading = true;
|
isLoading = true;
|
||||||
// setState(() {
|
// setState(() {
|
||||||
// _isLoading = true;
|
// _isLoading = true;
|
||||||
// });
|
// });
|
||||||
@ -106,7 +107,7 @@ class _PreEnrollmentState extends State<PreEnrollment> {
|
|||||||
// clintID!, clintBranchId!, hr_id, token);
|
// clintID!, clintBranchId!, hr_id, token);
|
||||||
print('IN1');
|
print('IN1');
|
||||||
if (response['status'] == 'success') {
|
if (response['status'] == 'success') {
|
||||||
// isLoading = false;
|
isLoading = false;
|
||||||
setState(() {
|
setState(() {
|
||||||
print('response');
|
print('response');
|
||||||
print(response['data']);
|
print(response['data']);
|
||||||
@ -120,6 +121,7 @@ class _PreEnrollmentState extends State<PreEnrollment> {
|
|||||||
print('IN2');
|
print('IN2');
|
||||||
print("getCardArrays9 - $getCardArrays");
|
print("getCardArrays9 - $getCardArrays");
|
||||||
} else {
|
} else {
|
||||||
|
isLoading = false;
|
||||||
print('API request failed with status');
|
print('API request failed with status');
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
@ -159,7 +161,18 @@ class _PreEnrollmentState extends State<PreEnrollment> {
|
|||||||
child: Column(
|
child: Column(
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
children: [
|
children: [
|
||||||
Container(
|
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
|
||||||
|
),
|
||||||
|
)
|
||||||
|
: Container(
|
||||||
// color: Colors.redAccent.shade100,
|
// color: Colors.redAccent.shade100,
|
||||||
// color: Colors.white,
|
// color: Colors.white,
|
||||||
// color: Colors.white,
|
// color: Colors.white,
|
||||||
@ -179,7 +192,8 @@ class _PreEnrollmentState extends State<PreEnrollment> {
|
|||||||
)
|
)
|
||||||
: GridView.builder(
|
: GridView.builder(
|
||||||
itemCount: getCardArrays.length,
|
itemCount: getCardArrays.length,
|
||||||
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
|
gridDelegate:
|
||||||
|
SliverGridDelegateWithFixedCrossAxisCount(
|
||||||
crossAxisCount: 4,
|
crossAxisCount: 4,
|
||||||
crossAxisSpacing: 20,
|
crossAxisSpacing: 20,
|
||||||
mainAxisSpacing: 20,
|
mainAxisSpacing: 20,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user