add debounce to mentions overlay

This commit is contained in:
Salvatore Giordano
2020-11-24 16:02:02 +01:00
parent 84fea9f32b
commit 5a45454ac8
+21 -6
View File
@@ -380,11 +380,19 @@ class MessageInputState extends State<MessageInput> {
Future<List<Member>> queryMembers;
if (query.isNotEmpty) {
queryMembers = StreamChannel.of(context).channel.queryMembers(filter: {
'name': {
'\$autocomplete': query,
queryMembers = StreamChannel.of(context).channel.queryMembers(
filter: {
'name': {
'\$autocomplete': query,
},
},
}).then((res) => res.members);
sort: [
SortOption(
'name',
direction: SortOption.ASC,
),
],
).then((res) => res.members);
}
final members = StreamChannel.of(context).channel.state.members?.where((m) {
@@ -952,6 +960,7 @@ class MessageInputState extends State<MessageInput> {
}
}
Timer _debounce;
void _onChange() {
final s = textEditingController.text;
StreamChannel.of(context).channel.keyStroke(
@@ -980,8 +989,14 @@ class MessageInputState extends State<MessageInput> {
.split(' ')
.last
.contains('@')) {
_mentionsOverlay = _buildMentionsOverlayEntry();
Overlay.of(context).insert(_mentionsOverlay);
if (_debounce?.isActive == true) _debounce.cancel();
_debounce = Timer(
const Duration(milliseconds: 350),
() {
_mentionsOverlay = _buildMentionsOverlayEntry();
Overlay.of(context).insert(_mentionsOverlay);
},
);
}
}