pull to refresh added on worklist screen.

faiz_marathon_signalR_critical
Sikander Saleem 4 years ago
parent ba65fbb79d
commit ba8e272885

@ -19,6 +19,7 @@ import 'package:mohem_flutter_app/models/worklist_response_model.dart';
import 'package:mohem_flutter_app/provider/dashboard_provider_model.dart'; import 'package:mohem_flutter_app/provider/dashboard_provider_model.dart';
import 'package:mohem_flutter_app/widgets/app_bar_widget.dart'; import 'package:mohem_flutter_app/widgets/app_bar_widget.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:pull_to_refresh/pull_to_refresh.dart';
class WorkListScreen extends StatefulWidget { class WorkListScreen extends StatefulWidget {
WorkListScreen({Key? key}) : super(key: key); WorkListScreen({Key? key}) : super(key: key);
@ -82,6 +83,8 @@ class _WorkListScreenState extends State<WorkListScreen> {
late DashboardProviderModel providerData; late DashboardProviderModel providerData;
final RefreshController _refreshController = RefreshController(initialRefresh: false);
@override @override
void initState() { void initState() {
super.initState(); super.initState();
@ -137,6 +140,11 @@ class _WorkListScreenState extends State<WorkListScreen> {
} }
} }
void _onRefresh() async {
getWorkList();
_refreshController.refreshCompleted();
}
@override @override
void dispose() { void dispose() {
super.dispose(); super.dispose();
@ -177,6 +185,7 @@ class _WorkListScreenState extends State<WorkListScreen> {
workListItemIndex = index; workListItemIndex = index;
if (workListItemTypes[index].value == 0) { if (workListItemTypes[index].value == 0) {
workList = []; workList = [];
itgRequestTypeIndex = null;
} else { } else {
workList = null; workList = null;
} }
@ -195,58 +204,70 @@ class _WorkListScreenState extends State<WorkListScreen> {
), ),
).paddingOnly(top: 21, bottom: 21), ).paddingOnly(top: 21, bottom: 21),
workListItemTypes[workListItemIndex].fullName.toSectionHeading().paddingOnly(left: 21, right: 21), workListItemTypes[workListItemIndex].fullName.toSectionHeading().paddingOnly(left: 21, right: 21),
if (itgRequestTypeIndex != null) SmartRefresher(
SizedBox( enablePullDown: true,
height: 40, enablePullUp: false,
child: ListView.separated( header: const MaterialClassicHeader(
itemBuilder: (context, index) { color: MyColors.gradiantEndColor,
RequestType type = itgFormsModel!.requestType![index];
return Container(
padding: const EdgeInsets.only(left: 21, right: 21, top: 8, bottom: 8),
alignment: Alignment.center,
decoration: BoxDecoration(borderRadius: BorderRadius.circular(30), color: itgRequestTypeIndex == index ? MyColors.darkIconColor : MyColors.lightGreyEAColor),
child: ("${type.requestTypeName}").toText12(color: itgRequestTypeIndex == index ? MyColors.white : MyColors.black),
).onPress(() {
if (itgRequestTypeIndex != index) {
itgRequestTypeIndex = index;
setState(() {});
}
});
},
separatorBuilder: (context, index) => 8.width,
shrinkWrap: true,
itemCount: itgFormsModel?.requestType?.length ?? 0,
scrollDirection: Axis.horizontal,
padding: const EdgeInsets.only(left: 21, right: 21),
), ),
).paddingOnly(top: 16, bottom: 16), controller: _refreshController,
itgRequestTypeIndex != null onRefresh: _onRefresh,
? Expanded( child: SingleChildScrollView(
child: ListView.separated( physics: const BouncingScrollPhysics(),
physics: BouncingScrollPhysics(), child: itgRequestTypeIndex != null
itemBuilder: (context, index) { ? Column(
return itgRowItem(workListItemTypes[workListItemIndex], itgFormsModel!.requestType![itgRequestTypeIndex!].requestDetails![index], index); children: [
}, SizedBox(
separatorBuilder: (context, index) => 12.height, height: 40,
itemCount: itgFormsModel!.requestType![itgRequestTypeIndex!].requestDetails?.length ?? 0, child: ListView.separated(
padding: const EdgeInsets.all(21),
),
)
: Expanded(
child: workList != null
? ((workList!).isEmpty
? LocaleKeys.noHistoryAvailable.tr().toText16().center
: ListView.separated(
physics: const BouncingScrollPhysics(),
itemBuilder: (context, index) { itemBuilder: (context, index) {
return rowItem(workListItemTypes[workListItemIndex], workList![index], index); RequestType type = itgFormsModel!.requestType![index];
return Container(
padding: const EdgeInsets.only(left: 21, right: 21, top: 8, bottom: 8),
alignment: Alignment.center,
decoration: BoxDecoration(borderRadius: BorderRadius.circular(30), color: itgRequestTypeIndex == index ? MyColors.darkIconColor : MyColors.lightGreyEAColor),
child: ("${type.requestTypeName}").toText12(color: itgRequestTypeIndex == index ? MyColors.white : MyColors.black),
).onPress(() {
if (itgRequestTypeIndex != index) {
itgRequestTypeIndex = index;
setState(() {});
}
});
}, },
separatorBuilder: (context, index) => 12.height, separatorBuilder: (context, index) => 8.width,
itemCount: workList?.length ?? 0, shrinkWrap: true,
padding: const EdgeInsets.all(21), itemCount: itgFormsModel?.requestType?.length ?? 0,
)) scrollDirection: Axis.horizontal,
: const SizedBox(), padding: const EdgeInsets.only(left: 21, right: 21),
), ),
).paddingOnly(top: 16, bottom: 16),
ListView.separated(
shrinkWrap: true,
physics: const NeverScrollableScrollPhysics(),
itemBuilder: (context, index) {
return itgRowItem(workListItemTypes[workListItemIndex], itgFormsModel!.requestType![itgRequestTypeIndex!].requestDetails![index], index);
},
separatorBuilder: (context, index) => 12.height,
itemCount: itgFormsModel!.requestType![itgRequestTypeIndex!].requestDetails?.length ?? 0,
padding: const EdgeInsets.all(21),
),
],
)
: workList != null
? ((workList!).isEmpty
? Utils.getNoDataWidget(context).paddingOnly(top: 100)
: ListView.separated(
shrinkWrap: true,
physics: const NeverScrollableScrollPhysics(),
itemBuilder: (context, index) {
return rowItem(workListItemTypes[workListItemIndex], workList![index], index);
},
separatorBuilder: (context, index) => 12.height,
itemCount: workList?.length ?? 0,
padding: const EdgeInsets.all(21),
))
: const SizedBox(),
)).expanded,
], ],
), ),
), ),
@ -321,10 +342,7 @@ class _WorkListScreenState extends State<WorkListScreen> {
Row( Row(
children: [ children: [
DateUtil.formatDateToDate(DateUtil.convertStringToDate(requestDetails.modifiedDate!), false).toText10(color: MyColors.lightTextColor).expanded, DateUtil.formatDateToDate(DateUtil.convertStringToDate(requestDetails.modifiedDate!), false).toText10(color: MyColors.lightTextColor).expanded,
RotatedBox( RotatedBox(quarterTurns: AppState().isArabic(context) ? 2 : 4, child: SvgPicture.asset("assets/images/arrow_next.svg", color: MyColors.darkIconColor)),
quarterTurns: AppState().isArabic(context) ? 2:4,
child: SvgPicture.asset("assets/images/arrow_next.svg", color:MyColors.darkIconColor)
),
], ],
), ),
], ],
@ -403,11 +421,7 @@ class _WorkListScreenState extends State<WorkListScreen> {
Row( Row(
children: [ children: [
DateUtil.formatDateToDate(DateUtil.convertSimpleStringDateToDate(workData.bEGINDATE!), false).toText10(color: MyColors.lightTextColor).expanded, DateUtil.formatDateToDate(DateUtil.convertSimpleStringDateToDate(workData.bEGINDATE!), false).toText10(color: MyColors.lightTextColor).expanded,
RotatedBox( RotatedBox(quarterTurns: AppState().isArabic(context) ? 2 : 4, child: SvgPicture.asset("assets/images/arrow_next.svg", color: MyColors.darkIconColor)),
quarterTurns: AppState().isArabic(context) ? 2:4,
child: SvgPicture.asset("assets/images/arrow_next.svg", color:MyColors.darkIconColor)
),
], ],
), ),
], ],

Loading…
Cancel
Save