import 'dart:io'; import 'package:connectivity_plus/connectivity_plus.dart'; import 'package:flutter/material.dart'; import 'package:generp/Utils/commonServices.dart'; import 'package:provider/provider.dart'; import '../../Notifiers/GeneratorDetailsProvider.dart'; import '../../Notifiers/HomeScreenNotifier.dart'; import '../../Utils/app_colors.dart'; import '../../Utils/commonWidgets.dart'; class Complainthistory extends StatefulWidget { final genHashID; const Complainthistory({super.key, required this.genHashID}); @override State createState() => _ComplainthistoryState(); } class _ComplainthistoryState 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((_) { var details = Provider.of( context, listen: false, ); var homeProvider = Provider.of( context, listen: false, ); details.LoadgeneratorComplaintHistoryApifunction( homeProvider, context, widget.genHashID, ); }); } @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"?Consumer( builder: (context, provider, child) { return WillPopScope( onWillPop: () => onBackPressed(context), child: SafeArea( top: false, bottom: Platform.isIOS?false:true, child: Scaffold( resizeToAvoidBottomInset: true, appBar: appbar(context, "Complaint History"), backgroundColor: AppColors.scaffold_bg_color, body: Container( child: SingleChildScrollView( child: Column( children: [ if (provider.complaintListOther.isNotEmpty) ...[ ListView.builder( shrinkWrap: true, physics: NeverScrollableScrollPhysics(), itemCount: provider.complaintListOther.length, itemBuilder: (context, l) { return Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Padding( padding: const EdgeInsets.only(left: 8.0,top: 5.0), child: Text( "${provider.complaintListOther[l].compRegdate}", style: TextStyle( fontSize:14, color: Color(0xFF818181)), ), ), Container( margin: EdgeInsets.symmetric( horizontal: 10, vertical: 5, ), decoration: BoxDecoration( color: Colors.white, borderRadius: BorderRadius.circular(16), ), child: Column( children: [ ...List.generate(4, (jndex) { final headings = [ "Technician Name", "Complaint Type", "Complaint Status", "Complaint Created By", ]; final values = [ provider.complaintListOther[l].techName, provider.complaintListOther[l].compType, provider.complaintListOther[l].compStatus, provider.complaintListOther[l].createdBy, ]; return Container( padding: EdgeInsets.symmetric( horizontal: 15, vertical: 6, ), child: Row( crossAxisAlignment: CrossAxisAlignment.start, children: [ Expanded( child: SizedBox( child: Text( "${headings[jndex]}", style: TextStyle( fontSize: 14 ), ), ), ), Expanded( child: SizedBox( child: Text( "${values[jndex]}", style: TextStyle( fontSize:14, color: Color( 0xFF818181, ), ), ), ), ), ], ), ); }), ], ), ), ], ); }, ), ] else ...[ Emptywidget(context), ], ], ), ), ), ), ), ); }, ):NoNetwork(context); } }