Commit 185e0896 authored by Sai Srinivas's avatar Sai Srinivas
Browse files

changes by mohit

parent ee5b7a8e
......@@ -57,31 +57,48 @@ class _AllpaymentrequesitionlistsbymodesState
bool shouldShowButtons = false;
final numberFormat = NumberFormat.decimalPattern();
final ScrollController _scrollController = ScrollController();
@override
void initState() {
// TODO: implement initState
super.initState();
_connectivity.initialise();
_connectivity.myStream.listen((source) {
setState(() => _source = source);
});
WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
cf = Commondaterangefilter();
var provider = Provider.of<Requestionlistprovider>(
context,
listen: false,
);
final now = DateTime.now();
final range = DateTimeRange(
start: DateTime(now.year, now.month, now.day),
end: DateTime(now.year, now.month, now.day),
);
final dateRange = cf.getFormattedDateRange(range);
// print(dateRange);
provider.paymentRequestionListsAPIFunction(context, widget.mode, "", "");
_scrollController.addListener(() {
if (_scrollController.position.pixels >=
_scrollController.position.maxScrollExtent - 200 &&
!provider.isLoadingMore &&
provider.hasMoreData) {
provider.paymentRequestionListsAPIFunction(
context,
widget.mode,
"",
"",
append: true,
);
}
});
});
}
@override
void dispose() {
_scrollController.dispose();
_connectivity.disposeStream();
super.dispose();
}
//'Requested',
// 'Level 1 Approved',
// 'Level 2 Approved',
......@@ -174,12 +191,12 @@ class _AllpaymentrequesitionlistsbymodesState
return 18.0;
}
@override
void dispose() {
// TODO: implement dispose
super.dispose();
_connectivity.disposeStream();
}
// @override
// void dispose() {
// // TODO: implement dispose
// super.dispose();
// _connectivity.disposeStream();
// }
@override
Widget build(BuildContext context) {
......@@ -320,30 +337,48 @@ class _AllpaymentrequesitionlistsbymodesState
0xFFFFFFFF,
),
backgroundColor: AppColors.scaffold_bg_color,
body:
provider.isLoading
body: provider.isLoading && requestLists.isEmpty
? Center(
child: CircularProgressIndicator.adaptive(
valueColor: AlwaysStoppedAnimation<Color>(
AppColors.app_blue,
),
valueColor: AlwaysStoppedAnimation<Color>(AppColors.app_blue),
),
)
: requestLists.isNotEmpty
? SizedBox(
? RefreshIndicator(
onRefresh: () async {
provider.resetPagination();
await provider.paymentRequestionListsAPIFunction(
context,
widget.mode,
"",
"",
);
},
child: Scrollbar(
controller: _scrollController, // attach here
thumbVisibility: false,
child: ListView.builder(
itemCount: requestLists.length,
shrinkWrap: true,
physics: AlwaysScrollableScrollPhysics(),
controller: _scrollController,
physics: const AlwaysScrollableScrollPhysics(),
itemCount:
requestLists.length + (provider.hasMoreData ? 1 : 0),
itemBuilder: (context, index) {
shouldShowSwipeButtons(requestLists[index].status);
if (requestLists.isEmpty) {
return SizedBox(
child: Center(child: Text("No Data Available")),
);
// loader row for pagination
if (index == requestLists.length) {
return provider.isLoadingMore
? const Padding(
padding: EdgeInsets.all(16),
child: Center(
child: CircularProgressIndicator(),
),
)
: const SizedBox.shrink();
}
// Your swipe logic untouched
final request = requestLists[index];
shouldShowSwipeButtons(request.status);
return InkResponse(
onTap: () async {
HapticFeedback.selectionClick();
......@@ -604,102 +639,13 @@ class _AllpaymentrequesitionlistsbymodesState
),
)
: Emptywidget(context),
);
},
);
}
Future<void> _showOptionsSheet(BuildContext context) {
return showModalBottomSheet(
useSafeArea: true,
isDismissible: true,
isScrollControlled: true,
showDragHandle: true,
backgroundColor: Colors.white,
enableDrag: true,
context: context,
builder: (context) {
return StatefulBuilder(
builder: (context, setState) {
return SafeArea(
child: Consumer<Requestionlistprovider>(
builder: (context, provider, child) {
return Container(
margin: EdgeInsets.only(
bottom: 15,
left: 15,
right: 15,
top: 10,
),
padding: EdgeInsets.only(
bottom: MediaQuery.of(context).viewInsets.bottom,
),
child: SingleChildScrollView(
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
SizedBox(height: 15),
...List.generate(5, (index) {
final assetnames = [
"se_locate_customer",
"se_locate_customer",
"se_update_complaint",
"se_payment_details",
"se_payment_details",
];
final Headingnames = [
"Copy to Clipboard",
"Download CSV",
"Download XLSX",
"Download PDF",
"Print Data",
];
return ListTile(
onTap: () {
HapticFeedback.selectionClick();
switch (index) {
case 0:
provider.copyToClipboard(context);
break;
case 1:
provider.downloadCSV(context);
break;
case 2:
provider.downloadXLS(context);
break;
case 3:
provider.downloadPDF(context);
break;
case 4:
provider.printData(context);
break;
}
},
leading: SvgPicture.asset(
"assets/svg/${assetnames[index]}.svg",
),
title: Text(
Headingnames[index],
style: TextStyle(fontFamily: "JakartaMedium"),
),
trailing: SvgPicture.asset(
"assets/svg/arrow_right_new.svg",
),
);
}),
],
),
),
);
},
),
);
},
);
},
);
}
Future<void> _showLevelApprovalSheet(BuildContext context, paymentID) {
return showModalBottomSheet(
......
......@@ -28,41 +28,45 @@ class Paymentlistpaymentrequisition extends StatefulWidget {
class _PaymentlistpaymentrequisitionState
extends State<Paymentlistpaymentrequisition> {
late Commondaterangefilter cf;
final ScrollController _scrollController = ScrollController();
Map _source = {ConnectivityResult.mobile: true};
final MyConnectivity _connectivity = MyConnectivity.instance;
@override
void initState() {
// TODO: implement initState
super.initState();
_connectivity.initialise();
_connectivity.myStream.listen((source) {
setState(() => _source = source);
});
WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
cf = Commondaterangefilter();
var provider = Provider.of<Paymentrequisitionpaymentslistprovider>(
context,
listen: false,
);
final now = DateTime.now();
final range = DateTimeRange(
start: DateTime(now.year, now.month, now.day),
end: DateTime(now.year, now.month, now.day),
);
final dateRange = cf.getFormattedDateRange(range);
provider.resetPagination();
provider.paymentsListAPI(context, '', '');
_scrollController.addListener(() {
if (_scrollController.position.pixels >=
_scrollController.position.maxScrollExtent - 200) {
provider.loadMore(context, '', '');
}
});
});
}
@override
void dispose() {
// TODO: implement dispose
super.dispose();
_scrollController.dispose();
_connectivity.disposeStream();
super.dispose();
}
@override
Widget build(BuildContext context) {
switch (_source.keys.toList()[0]) {
......@@ -145,8 +149,7 @@ class _PaymentlistpaymentrequisitionState
0xFFFFFFFF
),
backgroundColor: AppColors.scaffold_bg_color,
body:
provider.isLoading
body: provider.isLoading
? Center(
child: CircularProgressIndicator.adaptive(
valueColor: AlwaysStoppedAnimation<Color>(
......@@ -155,15 +158,25 @@ class _PaymentlistpaymentrequisitionState
),
)
: requestLists.isNotEmpty
? SizedBox(
child: Scrollbar(
? Scrollbar(
controller: _scrollController,
thumbVisibility: false,
child: ListView.builder(
itemCount: requestLists.length,
shrinkWrap: true,
physics: AlwaysScrollableScrollPhysics(),
controller: _scrollController,
itemCount: requestLists.length +
(provider.hasMoreData ? 1 : 0),
itemBuilder: (context, index) {
if (index == requestLists.length) {
return provider.isLoadingMore
? const Padding(
padding: EdgeInsets.all(16),
child: Center(
child: CircularProgressIndicator()),
)
: const SizedBox.shrink();
}
final payment = requestLists[index];
return InkResponse(
onTap: () async {
HapticFeedback.selectionClick();
......@@ -280,7 +293,6 @@ class _PaymentlistpaymentrequisitionState
);
},
),
),
)
: Emptywidget(context),
);
......
......@@ -29,24 +29,41 @@ class Paymentreceiptlist extends StatefulWidget {
class _PaymentreceiptlistState extends State<Paymentreceiptlist> {
Map _source = {ConnectivityResult.mobile: true};
final MyConnectivity _connectivity = MyConnectivity.instance;
final ScrollController _scrollController = ScrollController();
@override
void initState() {
// TODO: implement initState
super.initState();
_connectivity.initialise();
_connectivity.myStream.listen((source) {
setState(() => _source = source);
});
WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
WidgetsBinding.instance.addPostFrameCallback((_) {
var provider = Provider.of<Paymentreceiptsprovider>(
context,
listen: false,
);
provider.resetPagination();
provider.paymentsListAPI(context, '', '');
_scrollController.addListener(() {
if (_scrollController.position.pixels >=
_scrollController.position.maxScrollExtent - 200) {
provider.loadMore(context, '', '');
}
});
});
}
@override
void dispose() {
_scrollController.dispose();
_connectivity.disposeStream();
super.dispose();
}
@override
Widget build(BuildContext context) {
switch (_source.keys.toList()[0]) {
......@@ -77,6 +94,7 @@ class _PaymentreceiptlistState extends State<Paymentreceiptlist> {
Widget _scaffold(BuildContext context) {
return Consumer<Paymentreceiptsprovider>(
builder: (context, provider, child) {
final receipts = provider.receiptsList;
final requestLists = provider.receiptsList;
return Scaffold(
resizeToAvoidBottomInset: true,
......@@ -129,8 +147,7 @@ class _PaymentreceiptlistState extends State<Paymentreceiptlist> {
0xFFFFFFFF,
),
backgroundColor: AppColors.scaffold_bg_color,
body:
provider.isLoading
body: provider.isLoading
? Center(
child: CircularProgressIndicator.adaptive(
valueColor: AlwaysStoppedAnimation<Color>(
......@@ -138,14 +155,25 @@ class _PaymentreceiptlistState extends State<Paymentreceiptlist> {
),
),
)
: requestLists.isNotEmpty
? SizedBox(
child: Scrollbar(
: receipts.isNotEmpty
? Scrollbar(
controller: _scrollController,
child: ListView.builder(
itemCount: requestLists.length,
shrinkWrap: true,
physics: AlwaysScrollableScrollPhysics(),
controller: _scrollController,
itemCount:
receipts.length + (provider.hasMoreData ? 1 : 0),
itemBuilder: (context, index) {
if (index == receipts.length) {
return provider.isLoadingMore
? const Padding(
padding: EdgeInsets.all(16),
child: Center(
child: CircularProgressIndicator()),
)
: const SizedBox.shrink();
}
final receipt = receipts[index];
return InkResponse(
onTap: () async {
HapticFeedback.selectionClick();
......@@ -257,7 +285,6 @@ class _PaymentreceiptlistState extends State<Paymentreceiptlist> {
);
},
),
),
)
: Emptywidget(context),
);
......
......@@ -66,7 +66,7 @@ class _HrmdashboardScreenState extends State<HrmdashboardScreen> {
],
),
),
backgroundColor: const Color(0xffF6F6F8),
backgroundColor: AppColors.scaffold_bg_color,
body: SingleChildScrollView(
child: Column(
children: [
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -27,31 +27,38 @@ class _TpcagentissuelistState extends State<Tpcagentissuelist> {
Map _source = {ConnectivityResult.mobile: true};
final MyConnectivity _connectivity = MyConnectivity.instance;
final ScrollController _scrollController = ScrollController();
@override
void initState() {
// TODO: implement initState
super.initState();
_connectivity.initialise();
_connectivity.myStream.listen((source) {
setState(() => _source = source);
});
WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
var provider = Provider.of<Tpcagentsprovider>(
context,
listen: false,
);
WidgetsBinding.instance.addPostFrameCallback((_) {
final provider = Provider.of<Tpcagentsprovider>(context, listen: false);
provider.resetPagination(); // clear before first load
provider.TPCAgentsIssueListAPIFunction(context);
});
_scrollController.addListener(() {
if (_scrollController.position.pixels >=
_scrollController.position.maxScrollExtent - 200) {
final provider = Provider.of<Tpcagentsprovider>(context, listen: false);
provider.loadMoreIssues(context);
}
});
}
@override
void dispose() {
// TODO: implement dispose
super.dispose();
_scrollController.dispose();
_connectivity.disposeStream();
super.dispose();
}
@override
Widget build(BuildContext context) {
switch (_source.keys.toList()[0]) {
......@@ -108,27 +115,35 @@ class _TpcagentissuelistState extends State<Tpcagentissuelist> {
0xFFFFFFFF
),
backgroundColor: AppColors.scaffold_bg_color,
body:
provider.isLoading
? Center(child: CircularProgressIndicator.adaptive(
valueColor: AlwaysStoppedAnimation<Color>(
AppColors.app_blue)
))
: tpcAgentsIssueList.isNotEmpty ? SingleChildScrollView(
child: Column(
children: [
ListView.builder(
itemCount: tpcAgentsIssueList.length,
shrinkWrap: true,
physics: NeverScrollableScrollPhysics(),
body: provider.isLoading && tpcAgentsIssueList.isEmpty
? Center(
child: CircularProgressIndicator.adaptive(
valueColor:
AlwaysStoppedAnimation<Color>(AppColors.app_blue),
),
)
: tpcAgentsIssueList.isNotEmpty
? RefreshIndicator(
onRefresh: () async {
provider.resetPagination();
await provider.TPCAgentsIssueListAPIFunction(context);
},
child: ListView.builder(
controller: _scrollController,
itemCount: tpcAgentsIssueList.length +
(provider.hasMoreData ? 1 : 0),
itemBuilder: (context, index) {
if (tpcAgentsIssueList.isEmpty) {
return SizedBox(
if (index == tpcAgentsIssueList.length) {
return provider.isLoadingMore
? const Padding(
padding: EdgeInsets.all(16),
child: Center(
child: Text("No Data Available"),
),
);
child: CircularProgressIndicator()),
)
: const SizedBox.shrink();
}
final issue = tpcAgentsIssueList[index];
return InkResponse(
onTap: () async {
Navigator.push(
......@@ -233,9 +248,8 @@ class _TpcagentissuelistState extends State<Tpcagentissuelist> {
);
},
),
],
),
) : Emptywidget(context),
)
: Emptywidget(context),
);
},
);
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -16,7 +16,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
# In Windows, build-name is used as the major, minor, and patch parts
# of the product and file versions while build-number is used as the build suffix.
version: 1.0.103+111
version: 1.0.104+112
environment:
sdk: ^3.7.2
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment