request list added on my requests.

main_design2.0
Sikander Saleem 2 years ago
parent ab83963c65
commit ecacd2ec8f

@ -350,16 +350,18 @@
"item" : "Item", "item" : "Item",
"measuredValue": "Measured Value", "measuredValue": "Measured Value",
"overdue": "Overdue", "overdue": "Overdue",
"sureExit" : "Are you sure ypu want to Exit? ", "sureExit" : "Are you sure ypu want to Exit? ",
"daily" : "Daily", "daily" : "Daily",
"weekly" : "Weekly", "weekly" : "Weekly",
"monthly" : "Monthly", "monthly" : "Monthly",
"myShift" : "My Shift", "myShift" : "My Shift",
"myTeamRequest" : "My Team Request", "myTeamRequest" : "My Team Request",
"sunToThurs": "Sunday to Thursday", "sunToThurs": "Sunday to Thursday",
"requestGasRefill" : "Request Gas Refill", "requestGasRefill" : "Request Gas Refill",
"trackGasRefill" : "Track Gas Refill", "trackGasRefill" : "Track Gas Refill",
"trackAssetTransfer" : "Track Asset Transfer", "trackAssetTransfer" : "Track Asset Transfer",
"total" : "Total", "deviceTransferRequest" : "Device Transfer Requests",
"noDataFound" : "No Data Found" "total" : "Total",
"noDataFound" : "No Data Found",
"allRequests" : "All Requests"
} }

@ -6,6 +6,7 @@ import 'package:test_sa/extensions/int_extensions.dart';
import 'package:test_sa/extensions/text_extensions.dart'; import 'package:test_sa/extensions/text_extensions.dart';
import 'package:test_sa/extensions/widget_extensions.dart'; import 'package:test_sa/extensions/widget_extensions.dart';
import 'package:test_sa/models/search_all_requests_model.dart'; import 'package:test_sa/models/search_all_requests_model.dart';
import 'package:test_sa/new_views/app_style/app_color.dart';
import 'package:test_sa/new_views/pages/land_page/my_request/all_requests_filter_page.dart'; import 'package:test_sa/new_views/pages/land_page/my_request/all_requests_filter_page.dart';
import 'package:test_sa/new_views/pages/land_page/my_request/all_requests_search_page.dart'; import 'package:test_sa/new_views/pages/land_page/my_request/all_requests_search_page.dart';
import 'package:test_sa/new_views/pages/land_page/widgets/request_item_view_list.dart'; import 'package:test_sa/new_views/pages/land_page/widgets/request_item_view_list.dart';
@ -21,9 +22,20 @@ class _MyRequestsPageState extends State<MyRequestsPage> {
AllRequestsProvider _provider; AllRequestsProvider _provider;
SearchAllRequestsModel _search; SearchAllRequestsModel _search;
List<String> requestsList;
int selectedRequest;
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
if (_provider == null) { if (_provider == null) {
requestsList = [
context.translation.allRequests,
context.translation.serviceRequest,
context.translation.gasRefillRequest,
context.translation.deviceTransferRequest,
context.translation.preventiveMaintenance,
];
selectedRequest = 0;
_provider = Provider.of<AllRequestsProvider>(context, listen: false); _provider = Provider.of<AllRequestsProvider>(context, listen: false);
_provider.getAllRequests(); _provider.getAllRequests();
} }
@ -78,8 +90,47 @@ class _MyRequestsPageState extends State<MyRequestsPage> {
], ],
).paddingOnly(start: 16, end: 16), ).paddingOnly(start: 16, end: 16),
), ),
body: Consumer<AllRequestsProvider>(builder: (context, snapshot, _) { body: Column(
return RequestItemViewList(snapshot.allRequestsAndCount?.requestsDetails ?? [], snapshot.isAllLoading); children: [
})); SizedBox(
height: 34 + 16.0,
child: ListView.separated(
scrollDirection: Axis.horizontal,
padding: const EdgeInsets.only(top: 16, right: 16, left: 16),
itemBuilder: (cxt, index) => Container(
alignment: Alignment.center,
padding: const EdgeInsets.symmetric(horizontal: 8),
decoration: ShapeDecoration(
color: selectedRequest == index ? const Color(0xFFEAF1F4) : Colors.white,
shape: RoundedRectangleBorder(
side: BorderSide(width: 1, color: selectedRequest == index ? Color(0xFF4A8DB7) : Colors.white),
borderRadius: BorderRadius.circular(7),
),
shadows: const [
BoxShadow(
color: Color(0x07000000),
blurRadius: 14,
offset: Offset(0, 0),
spreadRadius: 0,
)
],
),
child: Text(requestsList[index], style: AppTextStyles.bodyText2.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.neutral50, height: 1)),
).onPress(() {
if (selectedRequest != index) {
setState(() {
selectedRequest = index;
});
_provider.getAllRequests(typeTransaction: selectedRequest == 0 ? null : selectedRequest);
}
}),
separatorBuilder: (cxt, index) => 8.width,
itemCount: requestsList.length),
),
Consumer<AllRequestsProvider>(builder: (context, snapshot, _) {
return RequestItemViewList(snapshot.allRequestsAndCount?.requestsDetails ?? [], snapshot.isAllLoading);
}).expanded,
],
));
} }
} }

@ -1,4 +1,5 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:test_sa/extensions/context_extension.dart';
import 'package:test_sa/extensions/int_extensions.dart'; import 'package:test_sa/extensions/int_extensions.dart';
import 'package:test_sa/extensions/widget_extensions.dart'; import 'package:test_sa/extensions/widget_extensions.dart';
import 'package:test_sa/models/all_requests_and_count_model.dart'; import 'package:test_sa/models/all_requests_and_count_model.dart';
@ -6,6 +7,7 @@ import 'package:test_sa/new_views/pages/land_page/requests/asset_item_view.dart'
import 'package:test_sa/new_views/pages/land_page/requests/gas_refill_item_view.dart'; import 'package:test_sa/new_views/pages/land_page/requests/gas_refill_item_view.dart';
import 'package:test_sa/new_views/pages/land_page/requests/ppm_item_view.dart'; import 'package:test_sa/new_views/pages/land_page/requests/ppm_item_view.dart';
import 'package:test_sa/new_views/pages/land_page/requests/service_request_item_view.dart'; import 'package:test_sa/new_views/pages/land_page/requests/service_request_item_view.dart';
import 'package:test_sa/views/widgets/loaders/no_item_found.dart';
class RequestItemViewList extends StatelessWidget { class RequestItemViewList extends StatelessWidget {
List<RequestsDetails> list; List<RequestsDetails> list;
@ -15,30 +17,32 @@ class RequestItemViewList extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return ListView.separated( return (list?.isEmpty ?? true)
padding: const EdgeInsets.all(16), ? NoItemFound(message: context.translation.noDataFound)
itemBuilder: (cxt, index) { : ListView.separated(
if (isLoading) return SizedBox().toRequestShimmer(cxt, isLoading); padding: const EdgeInsets.all(16),
bool isServiceRequest = list[index].nameOfType == "ServiceRequest"; itemBuilder: (cxt, index) {
bool isGasRefill = list[index].nameOfType == "GasRefill"; if (isLoading) return SizedBox().toRequestShimmer(cxt, isLoading);
bool isAssetTransfer = list[index].nameOfType == "AssetTransfer"; bool isServiceRequest = list[index].nameOfType == "ServiceRequest";
bool isPPMs = list[index].nameOfType == "PPMs"; bool isGasRefill = list[index].nameOfType == "GasRefill";
bool isAssetTransfer = list[index].nameOfType == "AssetTransfer";
bool isPPMs = list[index].nameOfType == "PPMs";
return isServiceRequest return isServiceRequest
? ServiceRequestItemView(list[index]) ? ServiceRequestItemView(list[index])
: isGasRefill : isGasRefill
? GasRefillItemView(list[index]) ? GasRefillItemView(list[index])
: isPPMs : isPPMs
? PpmItemView(list[index]) ? PpmItemView(list[index])
: isAssetTransfer : isAssetTransfer
? AssetItemView(list[index]) ? AssetItemView(list[index])
: Container( : Container(
height: 100, height: 100,
width: double.infinity, width: double.infinity,
color: Colors.grey, color: Colors.grey,
); );
}, },
separatorBuilder: (cxt, index) => 8.height, separatorBuilder: (cxt, index) => 8.height,
itemCount: isLoading ? 6 : list.length); itemCount: isLoading ? 6 : list.length);
} }
} }

@ -152,9 +152,7 @@ class _SingleDevicePickerState extends State<SingleDevicePicker> {
children: [ children: [
Expanded( Expanded(
child: _searchableList.isEmpty child: _searchableList.isEmpty
? NoItemFound( ? NoItemFound(message: context.translation.noDeviceFound)
message: context.translation.noDeviceFound,
)
: LazyLoading( : LazyLoading(
nextPage: _devicesProvider.nextPage, nextPage: _devicesProvider.nextPage,
onLazyLoad: () async { onLazyLoad: () async {

Loading…
Cancel
Save