From a6715b08724167916531c2fffe3066e784a67138 Mon Sep 17 00:00:00 2001 From: LittleSheep Date: Sat, 15 Feb 2025 19:08:40 +0800 Subject: [PATCH] :sparkles: Chat return new line --- lib/widgets/chat/chat_message_input.dart | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/lib/widgets/chat/chat_message_input.dart b/lib/widgets/chat/chat_message_input.dart index 3d73419..091fca0 100644 --- a/lib/widgets/chat/chat_message_input.dart +++ b/lib/widgets/chat/chat_message_input.dart @@ -48,6 +48,11 @@ class ChatMessageInputState extends State { modifiers: [(!kIsWeb && Platform.isMacOS) ? HotKeyModifier.meta : HotKeyModifier.control], scope: HotKeyScope.inapp, ); + final HotKey _newLineHotKey = HotKey( + key: PhysicalKeyboardKey.enter, + modifiers: [(!kIsWeb && Platform.isMacOS) ? HotKeyModifier.meta : HotKeyModifier.control], + scope: HotKeyScope.inapp, + ); void _registerHotKey() { if (kIsWeb || Platform.isAndroid || Platform.isIOS) return; @@ -61,6 +66,10 @@ class ChatMessageInputState extends State { )); setState(() {}); }); + hotKeyManager.register(_newLineHotKey, keyDownHandler: (_) async { + if (_contentController.text.isEmpty) return; + _contentController.text += '\n'; + }); } @override @@ -205,7 +214,10 @@ class ChatMessageInputState extends State { _contentController.dispose(); _focusNode.dispose(); _dismissEmojiPicker(); - if (!kIsWeb && !(Platform.isAndroid || Platform.isIOS)) hotKeyManager.unregister(_pasteHotKey); + if (!kIsWeb && !(Platform.isAndroid || Platform.isIOS)) { + hotKeyManager.unregister(_pasteHotKey); + hotKeyManager.unregister(_newLineHotKey); + } super.dispose(); } @@ -345,6 +357,7 @@ class ChatMessageInputState extends State { _sendMessage(); _focusNode.requestFocus(); }, + maxLines: null, ), ), const Gap(8),