| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- import 'dart:async';
- import 'package:dash_chat/dash_chat.dart';
- import 'package:e2ee_chat/common/global.dart';
- import 'package:e2ee_chat/model/message.dart';
- import 'package:e2ee_chat/model/user.dart';
- import 'package:e2ee_chat/presenter/login.dart';
- import 'package:e2ee_chat/presenter/user_chat.dart';
- import 'package:flutter/material.dart';
- import 'package:provider/provider.dart';
- import '';
- class UserChatView extends StatefulWidget {
- UserChatView();
- @override
- _UserChatViewState createState() => _UserChatViewState();
- }
- class _UserChatViewState extends State<UserChatView> {
- final GlobalKey<DashChatState> _chatViewKey = GlobalKey<DashChatState>();
- final _presenter = UserChatPresenter();
- @override
- void initState() {
- super.initState();
- }
- @override
- Widget build(BuildContext context) {
- final String? to = ModalRoute.of(context)?.settings.arguments.toString();
- if (to != null) {
- _presenter.to = User(to);
- }
- assert(_presenter.to != null, "error! user chat view to == null!");
- return ChangeNotifierProvider<UserChatPresenter>(
- create: (context) => _presenter,
- child: Scaffold(
- appBar: AppBar(
- title: Text("Chat App"),
- ),
- body: Builder(builder: (context) {
- final presenter = Provider.of<UserChatPresenter>(context);
- final List<ChatMessage> messages = presenter.chatMessages;
- final user = presenter.from!.toChatUser();
- return DashChat(
- key: _chatViewKey,
- inverted: false,
- onSend: (message) {
- debug(message.toJson());
- presenter.sendMessage(message);
- },
- sendOnEnter: true,
- textInputAction: TextInputAction.send,
- user: user,
- inputDecoration: InputDecoration.collapsed(hintText: "Add message here..."),
- dateFormat: DateFormat('yyyy-MMM-dd'),
- timeFormat: DateFormat('HH:mm'),
- messages: messages,
- showUserAvatar: false,
- showAvatarForEveryMessage: false,
- scrollToBottom: false,
- onPressAvatar: (ChatUser user) {
- print("OnPressAvatar: ${user.name}");
- },
- onLongPressAvatar: (ChatUser user) {
- print("OnLongPressAvatar: ${user.name}");
- },
- inputMaxLines: 5,
- messageContainerPadding: EdgeInsets.only(left: 5.0, right: 5.0),
- alwaysShowSend: true,
- inputTextStyle: TextStyle(fontSize: 16.0),
- inputContainerStyle: BoxDecoration(
- border: Border.all(width: 0.0),
- color: Colors.white,
- ),
- onLoadEarlier: () {
- print("laoding...");
- },
- shouldShowLoadEarlier: false,
- showTraillingBeforeSend: true,
- );
- }),
- ));
- }
- }
|