import 'dart:io'; import 'package:connectivity_plus/connectivity_plus.dart'; import 'package:flutter/material.dart'; import 'package:flutter_svg/svg.dart'; import 'package:generp/Utils/app_colors.dart'; import 'package:generp/Utils/commonWidgets.dart'; import 'package:provider/provider.dart'; import '../../Notifiers/financeProvider/paymentReceiptsProvider.dart'; import '../../Utils/commonServices.dart'; import 'FileViewer.dart'; class Paymentreceiptdetails extends StatefulWidget { final paymentRequestId; final pageName; const Paymentreceiptdetails({ super.key, required this.paymentRequestId, required this.pageName, }); @override State createState() => _PaymentreceiptdetailsState(); } class _PaymentreceiptdetailsState extends State { 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) { var provider = Provider.of( context, listen: false, ); provider.paymentsListDetailsAPI(context, widget.paymentRequestId); }); } @override void dispose() { // TODO: implement dispose super.dispose(); _connectivity.disposeStream(); } @override Widget build(BuildContext context) { switch (_source.keys.toList()[0]) { case ConnectivityResult.mobile: connection = 'Online'; break; case ConnectivityResult.wifi: connection = 'Online'; break; case ConnectivityResult.none: default: connection = 'Offline'; } return (connection == "Online") ? Platform.isAndroid ? WillPopScope( onWillPop: () => onBackPressed(context), child: SafeArea( top: false, bottom: true, child: _scaffold(context), ), ) : _scaffold(context) : NoNetwork(context); } Widget _scaffold(BuildContext context) { return Consumer( builder: (context, provider, child) { var payment_det = provider.receiptDetails; return Scaffold( resizeToAvoidBottomInset: true, //widget.pageName appBar: appbar(context, "Payment Receipt Details"), backgroundColor: AppColors.scaffold_bg_color, body: Container( child: SingleChildScrollView( child: Container( decoration: BoxDecoration( color: Colors.white, borderRadius: BorderRadius.circular(16), ), margin: EdgeInsets.symmetric(vertical: 10, horizontal: 10), padding: EdgeInsets.symmetric(vertical: 10, horizontal: 10), child: Column( children: [ Row( children: [ Expanded( flex: 1, child: Container( height: 50, width: 35, padding: EdgeInsets.all(8.0), decoration: BoxDecoration( color: Color(0xFFFFF3CE), borderRadius: BorderRadius.circular(8), ), child: SvgPicture.asset("assets/svg/fin_ic.svg"), ), ), SizedBox(width: 10), Expanded( flex: 4, child: SizedBox( child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( payment_det.receipientAccount ?? "-", style: TextStyle( fontFamily: "JakartaMedium", fontSize: 14, color: AppColors.semi_black, ), ), Text( "₹${payment_det.amount}", style: TextStyle( fontFamily: "JakartaMedium", fontSize: 14, color: AppColors.app_blue, ), ), ], ), ), ), ], ), Divider(thickness: 0.5, color: Color(0xFFD7D7D7)), ...List.generate(provider.subHeadings.length, (j) { if (provider.Headings[j] == "Attachment" && payment_det.attachmentViewFileName == "") { return SizedBox.shrink(); } return Container( padding: EdgeInsets.symmetric(vertical: 7), child: Row( crossAxisAlignment: CrossAxisAlignment.start, children: [ Expanded( child: Text( provider.Headings[j], style: TextStyle( fontFamily: "JakartaMedium", fontSize: 14, color: AppColors.semi_black, ), ), ), Expanded( child: InkResponse( onTap: () { if (provider.Headings[j] == "Attachment") { Navigator.push( context, MaterialPageRoute( builder: (context) => Fileviewer( fileName: payment_det .attachmentViewFileName!, fileUrl: payment_det .attachmentDirFilePath!, ), ), ); } }, child: Text( provider.Headings[j] == "Attachment" ? "View" : provider.subHeadings[j] == "" ? "-" : provider.subHeadings[j] ?? "-", style: TextStyle( fontSize: 14, color: provider.Headings[j] == "Attachment" ? AppColors.app_blue : Color(0xFF818181), decoration: provider.Headings[j] == "Attachment" ? TextDecoration.underline : TextDecoration.none, decorationColor: provider.Headings[j] == "Attachment" ? AppColors.app_blue : AppColors.white, ), ), ), ), ], ), ); }), ], ), ), ), ), ); }, ); } }