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/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 'activities_list_view.dart'; class VerifyArrivalView extends StatelessWidget { const VerifyArrivalView({Key? key}) : super(key: key); @override Widget build(BuildContext context) { final List> 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(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 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) => const ActivitiesListView()), ); break; case 2: //push to specific screen... // Navigator.push( // context, // MaterialPageRoute(builder: (context) => const ScanQrView()), // ); break; } // ScanQr } }