import 'package:community_material_icon/community_material_icon.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:prosappco/src/authentication/authentication_repository.dart'; import 'package:prosappco/src/components/photo_view.dart'; import 'package:prosappco/src/components/pop_appbar.dart'; import 'package:prosappco/src/models/chat_model.dart'; import 'package:prosappco/src/models/event_model.dart'; import 'package:prosappco/src/screens/chat.dart'; class MessagesScreen extends StatefulWidget { const MessagesScreen({super.key}); @override State createState() => _MessagesScreenState(); } class _MessagesScreenState extends State { final uid = AuthenticationRepository.instance.getCurrentUserUid(); List list = []; @override void initState() { super.initState(); ChatModel.getChatsByProId(uid!).then( (List s) => setState(() { list = s; }), ); } @override Widget build(BuildContext context) { return Scaffold( appBar: PopAppbar( onPressed: () { Navigator.pop(context); }, label: 'Mensajes'), body: Column( children: [ const Padding( padding: EdgeInsets.all(10), child: TextField( // controller: searchController, decoration: InputDecoration( hintText: 'Escriba un nombre', prefixIcon: Icon(CommunityMaterialIcons.stethoscope), ), ), ), Expanded( child: ListView.builder( itemCount: list.length, itemBuilder: (BuildContext context, int index) { if (list[index].messages.isNotEmpty) { final user = list[index].user; final lastMsg = list[index].messages.last; return ListTile( title: Text( (user?.name ?? ''), ), subtitle: Text( '" ${lastMsg.content} "', style: const TextStyle(fontStyle: FontStyle.italic), ), leading: ReferencePhoto( ref: user?.photo, size: 55, sizeCircle: 60, ), trailing: Column( children: [ SizedBox(height: 8), const Icon( Icons.keyboard_arrow_right, color: Colors.black, ), ], ), onTap: () { Event.getEventById(list[index].id).then((value) { Navigator.push( context, CupertinoPageRoute( builder: (BuildContext context) { return ChatScreen(eventoId: list[index].id); }, ), ); }); }, ); } else { return const SizedBox(); } }, ), ), ], ), ); } }