Advanced chat management via UI
This commit is contained in:
1 parent
fbee31841d
commit
5351144edf
9 files changed
+396
-59
No files matched your search
@@ -33,6 +33,7 @@ class ChatScreen extends StatefulWidget {
|
||||
}
|
||||
|
||||
class _ChatScreenState extends State<ChatScreen> {
|
||||
String? _title;
|
||||
List<Message> _messages = [];
|
||||
final TextEditingController _textController = TextEditingController();
|
||||
StreamSubscription? _chatSubscription;
|
||||
@@ -40,7 +41,7 @@ class _ChatScreenState extends State<ChatScreen> {
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
_loadInitialMessages();
|
||||
_loadInitialData();
|
||||
_chatSubscription = Backend.chatMessages(widget.chatId).listen((data) {
|
||||
final message = Message(sender: data['sender'], text: data['content']);
|
||||
if (!message.isFromUser) {
|
||||
@@ -55,10 +56,12 @@ class _ChatScreenState extends State<ChatScreen> {
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
Future<void> _loadInitialMessages() async {
|
||||
Future<void> _loadInitialData() async {
|
||||
final chatInfo = (await Backend.getChat(widget.chatId))!;
|
||||
final initialMessages = await ChatScreen.getChatMessages(widget.chatId);
|
||||
setState(() {
|
||||
_messages.addAll(initialMessages);
|
||||
_title = chatInfo.name;
|
||||
});
|
||||
}
|
||||
|
||||
@@ -100,7 +103,7 @@ class _ChatScreenState extends State<ChatScreen> {
|
||||
|
||||
return Scaffold(
|
||||
appBar: AppBar(
|
||||
title: Text('Chat Room ${widget.chatId}'),
|
||||
title: Text(_title ?? 'Chat Room ${widget.chatId}'),
|
||||
actions: [
|
||||
IconButton(icon: Icon(Icons.settings), onPressed: () {
|
||||
Navigator.push(context, MaterialPageRoute(builder: (_) => AppMenu()));
|
||||
|
||||
Reference in new issue
Block a user