import 'package:discover_module/ui_screen/interactionform/interaction_screen.dart'; import 'package:discover_module/ui_screen/interactionform/interactionprovider.dart'; import 'package:discover_module/ui_screen/interactionform/model/save_interaction.dart'; import 'package:discover_module/ui_screen/interactionform/view_forms_list.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; class InteractionListScreen extends StatefulWidget { const InteractionListScreen({super.key}); @override State createState() => _InteractionListScreenState(); } class _InteractionListScreenState extends State { List savedList = []; @override void initState() { WidgetsBinding.instance.addPostFrameCallback((timeStamp) { // if (!mytimer!.isActive) { // activateTimer(); // } print("interactionListt"); init(); }); super.initState(); } init() async { print("init"); await Provider.of(context, listen: false) .initConfigData(); await Provider.of(context, listen: false).getRecords(); setState(() {}); } Future getCount(String form, InteractionProvider provider) async { await provider.getRecords(); return provider.savedList.where((element) => element.form == form).length; } @override Widget build(BuildContext context) { return Consumer( builder: (BuildContext context, provider, Widget? child) { return Scaffold( appBar: AppBar( title: Text( 'Interaction Forms', //style: TextStyle(fontSize: isTablet ? 22 : 14, color: Colors.white), ), automaticallyImplyLeading: false, // backgroundColor: const Color(0xFF2b9af3), leading: InkWell( onTap: () { Navigator.pop(context); }, child: const Icon( Icons.arrow_back_ios, color: Colors.white, ), ), ), body: Container( child: Center( child: ListView.builder( itemCount: provider.intConfigDataList.length, cacheExtent: double.parse( provider.intConfigDataList.length.toString()), itemBuilder: (context, index) { return Column( children: [ ListTile( title: Row( children: [ Text( provider.intConfigDataList[index].name, ), const SizedBox( width: 20, ), IconButton( onPressed: () { Navigator.push( context, MaterialPageRoute( builder: (BuildContext context) => InteractionScreen( index: index, form: provider .intConfigDataList[index] .name, ))); }, icon: const Icon( Icons.arrow_circle_right_outlined, size: 30, color: Color.fromARGB(255, 8, 39, 92), ), ), ], ), trailing: provider.savedList.indexWhere((element) => element.form == provider.intConfigDataList[index].name) != -1 ? InkWell( onTap: () { if (getCount( provider .intConfigDataList[index].name, provider) != 0) { provider.savedList .where((element) => element.form == provider.intConfigDataList[index] .name) .toList(); Navigator.push( context, MaterialPageRoute( builder: (BuildContext context) => SavedFormListScreen( formname: provider .intConfigDataList[ index] .name, ))); } }, child: FittedBox( fit: BoxFit.scaleDown, child: Text( "${provider.savedList.where((element) => element.form == provider.intConfigDataList[index].name).length} record(s) saved", style: TextStyle( // fontSize: isTablet ? 18.0 : 14, fontSize: 18.0, color: Colors.blue.shade900), ), ), ) : const SizedBox.shrink(), onTap: () { Navigator.push( context, MaterialPageRoute( builder: (BuildContext context) => InteractionScreen( index: index, form: provider .intConfigDataList[index].name, ))); }, ), const Divider(), ], ); })), ), ); }); } }