frontend/frontend-flutter/lib/screens/bot_chat_view.dart (82 lines of code) (raw):

import 'package:chatview/chatview.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; class BotChatView extends StatefulWidget { const BotChatView({Key? key}) : super(key: key); @override State<BotChatView> createState() => BotChatViewState(); } class BotChatViewState extends State<BotChatView> { ChatUser? currentUser; ChatUser? bot; ChatController? _chatController; @override void initState() { super.initState(); currentUser = ChatUser( id: '0', name: 'User', profilePhoto: "https://raw.githubusercontent.com/SimformSolutionsPvtLtd/flutter_showcaseview/master/example/assets/simform.png", ); bot = ChatUser( id: '1', name: 'Bot', profilePhoto: "https://raw.githubusercontent.com/SimformSolutionsPvtLtd/flutter_showcaseview/master/example/assets/simform.png", ); _chatController = ChatController( initialMessageList: [ Message( id: '0', message: "Hi Bot!", createdAt: DateTime.now(), sendBy: '0', // userId of who sends the message ), Message( id: '1', message: "Hi!", createdAt: DateTime.now(), sendBy: '1', ), ], scrollController: ScrollController(), chatUsers: [ currentUser!, bot!, ], ); } @override Widget build(BuildContext context) { return Scaffold( body: ChatView( chatBackgroundConfig: ChatBackgroundConfiguration( backgroundImage: "https://raw.githubusercontent.com/SimformSolutionsPvtLtd/flutter_showcaseview/master/example/assets/simform.png",//"assets/images/background.png", messageTimeIconColor: Colors.white, messageTimeTextStyle: TextStyle(color: Colors.white), defaultGroupSeparatorConfig: DefaultGroupSeparatorConfiguration( textStyle: TextStyle( color: Colors.white, fontSize: 17, ), ), backgroundColor: Color(0xffFCD8DC), ), currentUser: currentUser!, chatController: _chatController!, onSendTap: onSendTap, chatViewState: ChatViewState.hasMessages ), ); } void onSendTap(String message, ReplyMessage replyMessage, MessageType messageType){ final message = Message( id: '2', message: "How are you", createdAt: DateTime.now(), sendBy: currentUser!.id, replyMessage: replyMessage, messageType: messageType, ); _chatController!.addMessage(message); } }