fix empty messages

This commit is contained in:
NicKoehler 2023-06-09 10:07:27 +02:00
parent 90aa95ef21
commit 38471fbacd
No known key found for this signature in database
GPG Key ID: 0EC502B679A11DD1

View File

@ -89,25 +89,24 @@ class ChatModel with ChangeNotifier {
ChatModel(this.parent) { ChatModel(this.parent) {
sessionId = parent.target!.sessionId; sessionId = parent.target!.sessionId;
inputNode = FocusNode( inputNode = FocusNode(
onKey: (node, event) { onKey: (_, event) {
bool isShiftPressed = event.isKeyPressed(LogicalKeyboardKey.shiftLeft); bool isShiftPressed = event.isKeyPressed(LogicalKeyboardKey.shiftLeft);
bool isEnterPressed = event.isKeyPressed(LogicalKeyboardKey.enter); bool isEnterPressed = event.isKeyPressed(LogicalKeyboardKey.enter);
String trimmedText = textController.text.trim(); // don't send empty messages
if (isEnterPressed && isEnterPressed && textController.text.isEmpty) {
// don't send empty message return KeyEventResult.handled;
if (trimmedText.isEmpty) {
textController.text = trimmedText;
} }
if (isEnterPressed && !isShiftPressed) { if (isEnterPressed && !isShiftPressed) {
final ChatMessage message = ChatMessage( final ChatMessage message = ChatMessage(
text: trimmedText, text: textController.text,
user: me, user: me,
createdAt: DateTime.now(), createdAt: DateTime.now(),
); );
send(message); send(message);
textController.text = ""; textController.clear();
return KeyEventResult.handled;
} }
return KeyEventResult.ignored; return KeyEventResult.ignored;
@ -335,16 +334,18 @@ class ChatModel with ChangeNotifier {
} }
send(ChatMessage message) { send(ChatMessage message) {
if (message.text.isNotEmpty) { String trimmedText = message.text.trim();
_messages[_currentID]?.insert(message); if (trimmedText.isEmpty) {
if (_currentID == clientModeID) { return;
if (parent.target != null) {
bind.sessionSendChat(sessionId: sessionId, text: message.text);
}
} else {
bind.cmSendChat(connId: _currentID, msg: message.text);
}
} }
message.text = trimmedText;
_messages[_currentID]?.insert(message);
if (_currentID == clientModeID && parent.target != null) {
bind.sessionSendChat(sessionId: sessionId, text: message.text);
} else {
bind.cmSendChat(connId: _currentID, msg: message.text);
}
notifyListeners(); notifyListeners();
inputNode.requestFocus(); inputNode.requestFocus();
} }