Skip to content

Commit 99f1a79

Browse files
committed
compose: Maintain a MentionAutocompleteView when controller reports intent
1 parent 3cdcc77 commit 99f1a79

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

lib/widgets/compose_box.dart

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import 'package:flutter/services.dart';
55
import 'package:image_picker/image_picker.dart';
66

77
import '../api/route/messages.dart';
8+
import '../model/autocomplete.dart';
89
import '../model/narrow.dart';
910
import '../model/store.dart';
1011
import 'dialog.dart';
@@ -173,6 +174,8 @@ class _StreamContentInput extends StatefulWidget {
173174
}
174175

175176
class _StreamContentInputState extends State<_StreamContentInput> {
177+
MentionAutocompleteView? _mentionAutocompleteView; // TODO different autocomplete view types
178+
176179
late String _topicTextNormalized;
177180

178181
_topicChanged() {
@@ -181,16 +184,32 @@ class _StreamContentInputState extends State<_StreamContentInput> {
181184
});
182185
}
183186

187+
_changed() {
188+
final newAutocompleteIntent = widget.controller.autocompleteIntent();
189+
if (newAutocompleteIntent != null) {
190+
_mentionAutocompleteView ??= MentionAutocompleteView.init(
191+
store: widget.store, narrow: widget.narrow);
192+
_mentionAutocompleteView!.query = newAutocompleteIntent.query;
193+
} else {
194+
if (_mentionAutocompleteView != null) {
195+
_mentionAutocompleteView!.dispose();
196+
_mentionAutocompleteView = null;
197+
}
198+
}
199+
}
200+
184201
@override
185202
void initState() {
186203
super.initState();
187204
_topicTextNormalized = widget.topicController.textNormalized();
188205
widget.topicController.addListener(_topicChanged);
206+
widget.controller.addListener(_changed);
189207
}
190208

191209
@override
192210
void dispose() {
193211
widget.topicController.removeListener(_topicChanged);
212+
widget.controller.removeListener(_changed);
194213
super.dispose();
195214
}
196215

0 commit comments

Comments
 (0)