You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
115 lines
4.3 KiB
Dart
115 lines
4.3 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:flutter_svg/svg.dart';
|
|
import 'package:provider/provider.dart';
|
|
import 'package:test_sa/app_strings/app_asset.dart';
|
|
import 'package:test_sa/controllers/providers/api/service_requests_provider.dart';
|
|
import 'package:test_sa/extensions/context_extension.dart';
|
|
import 'package:test_sa/extensions/int_extensions.dart';
|
|
import 'package:test_sa/extensions/text_extensions.dart';
|
|
import 'package:test_sa/extensions/widget_extensions.dart';
|
|
import 'package:test_sa/models/service_request/service_request.dart';
|
|
import 'package:test_sa/new_views/common_widgets/default_app_bar.dart';
|
|
import 'package:test_sa/service_request_latest/views/components/scan_qr_view.dart';
|
|
import 'package:test_sa/views/widgets/qr/scan_qr.dart';
|
|
|
|
import 'activities_list_view.dart';
|
|
|
|
class VerifyArrivalView extends StatelessWidget {
|
|
VerifyArrivalView({Key key}) : super(key: key);
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
final List<Map<String, String>> items = [
|
|
{'heading': context.translation.scanQr, 'subHeading': context.translation.scanQrDetail, 'icon': AppAsset.scanQrIcon},
|
|
{'heading': context.translation.askRequester, 'subHeading': context.translation.askRequesterDetail, 'icon': AppAsset.askRequesterIcon},
|
|
{'heading': context.translation.askOtp, 'subHeading': context.translation.askOtpDetail, 'icon': AppAsset.askOtpIcon},
|
|
{'heading': context.translation.takeDevicePhoto, 'subHeading': context.translation.takeDevicePhotoDetail, 'icon': AppAsset.takeDevicePhotoIcon},
|
|
];
|
|
return Scaffold(
|
|
appBar: DefaultAppBar(title: context.translation.verifyArrival),
|
|
//backgroundColor: const Color(0xfff8f9fb),
|
|
body: Consumer<ServiceRequestsProvider>(builder: (context, serviceRequestsProvider, child) {
|
|
return SafeArea(
|
|
child: ListView.builder(
|
|
padding: EdgeInsets.symmetric(vertical: 12.toScreenHeight),
|
|
// padding: EdgeInsets.zero,
|
|
itemCount: items.length,
|
|
itemBuilder: (context, index) {
|
|
final item = items[index];
|
|
return listItem(
|
|
icon: item['icon'],
|
|
heading: item['heading'],
|
|
subHeading: item['subHeading'],
|
|
context: context,
|
|
onTap: () {
|
|
|
|
onItemTap(serviceRequest: serviceRequestsProvider.currentSelectedRequest, index: index,context: context);
|
|
});
|
|
},
|
|
),
|
|
);
|
|
}),
|
|
);
|
|
}
|
|
|
|
Widget listItem({@required BuildContext context, @required String icon, @required String heading, @required String subHeading, @required VoidCallback onTap}) {
|
|
return Padding(
|
|
padding: EdgeInsets.only(left: 16.toScreenWidth,right: 16.toScreenWidth,bottom: 12.toScreenHeight),
|
|
|
|
child: Card(
|
|
shape: RoundedRectangleBorder(
|
|
borderRadius: BorderRadius.circular(14), // Circular border radius
|
|
),
|
|
color: Colors.white,
|
|
child:
|
|
ListTile(
|
|
minVerticalPadding: 12,
|
|
horizontalTitleGap: 10,
|
|
onTap: onTap,
|
|
// contentPadding: const EdgeInsets.all(12),
|
|
leading: SvgPicture.asset(icon),
|
|
title: Text(
|
|
heading,
|
|
style: AppTextStyles.heading5,
|
|
),
|
|
subtitle: Text(
|
|
subHeading,
|
|
style: AppTextStyles.bodyText,
|
|
),
|
|
),
|
|
),
|
|
);
|
|
}
|
|
|
|
void onItemTap({@required int index, @required ServiceRequest serviceRequest,@required BuildContext context}) {
|
|
print('on item tap i got index is $index');
|
|
switch(index){
|
|
case 0:
|
|
Navigator.push(
|
|
context,
|
|
MaterialPageRoute(builder: (context) => const ScanQrView()),
|
|
);
|
|
break;case 1:
|
|
//push to specific screen...
|
|
Navigator.push(
|
|
context,
|
|
MaterialPageRoute(builder: (context) => ActivitiesListView()),
|
|
);
|
|
break;case 2:
|
|
//push to specific screen...
|
|
// Navigator.push(
|
|
// context,
|
|
// MaterialPageRoute(builder: (context) => const ScanQrView()),
|
|
// );
|
|
break;case 2:
|
|
//push to specific screen...
|
|
// Navigator.push(
|
|
// context,
|
|
// MaterialPageRoute(builder: (context) => const ScanQrView()),
|
|
// );
|
|
break;
|
|
}
|
|
// ScanQr
|
|
}
|
|
}
|