105 lines
3.4 KiB
Dart
105 lines
3.4 KiB
Dart
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<MessagesScreen> createState() => _MessagesScreenState();
|
|
}
|
|
|
|
class _MessagesScreenState extends State<MessagesScreen> {
|
|
final uid = AuthenticationRepository.instance.getCurrentUserUid();
|
|
List<ChatModel> list = [];
|
|
@override
|
|
void initState() {
|
|
super.initState();
|
|
|
|
ChatModel.getChatsByProId(uid!).then(
|
|
(List<ChatModel> 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();
|
|
}
|
|
},
|
|
),
|
|
),
|
|
],
|
|
),
|
|
);
|
|
}
|
|
}
|