Autofocus chatbox on edit/reply
This commit is contained in:
parent
4aa962193d
commit
92f6b2fbba
3 changed files with 66 additions and 50 deletions
|
|
@ -1,6 +1,5 @@
|
|||
import "package:fast_immutable_collections/fast_immutable_collections.dart";
|
||||
import "package:flutter/material.dart";
|
||||
import "package:flutter/services.dart";
|
||||
import "package:flutter_chat_core/flutter_chat_core.dart";
|
||||
import "package:flutter_hooks/flutter_hooks.dart";
|
||||
import "package:fluttertagger/fluttertagger.dart";
|
||||
|
|
@ -15,6 +14,7 @@ class ChatBox extends HookConsumerWidget {
|
|||
final Message? relatedMessage;
|
||||
final RelationType relationType;
|
||||
final VoidCallback onDismiss;
|
||||
final FocusNode? node;
|
||||
final Future<void> Function(
|
||||
String text, {
|
||||
required bool shouldMention,
|
||||
|
|
@ -26,6 +26,7 @@ class ChatBox extends HookConsumerWidget {
|
|||
required this.relationType,
|
||||
required this.onDismiss,
|
||||
required this.onSend,
|
||||
this.node,
|
||||
super.key,
|
||||
});
|
||||
|
||||
|
|
@ -55,18 +56,6 @@ class ChatBox extends HookConsumerWidget {
|
|||
controller.value.text = "";
|
||||
}
|
||||
|
||||
final node = useFocusNode(
|
||||
onKeyEvent: (_, event) {
|
||||
if (event is KeyDownEvent &&
|
||||
event.logicalKey == LogicalKeyboardKey.escape) {
|
||||
onDismiss();
|
||||
return KeyEventResult.handled;
|
||||
}
|
||||
|
||||
return KeyEventResult.ignored;
|
||||
},
|
||||
);
|
||||
|
||||
final style = TextStyle(
|
||||
color: theme.colorScheme.primary,
|
||||
fontWeight: FontWeight.bold,
|
||||
|
|
@ -135,7 +124,7 @@ class ChatBox extends HookConsumerWidget {
|
|||
triggerCharacter: triggerCharacter.value,
|
||||
addTag: ({required id, required name}) {
|
||||
controller.value.addTag(id: id, name: name);
|
||||
node.requestFocus();
|
||||
node?.requestFocus();
|
||||
},
|
||||
),
|
||||
controller: controller.value,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue