8
8
type AutocompleteAction ,
9
9
AutocompleteActionKind ,
10
10
type AutocompleteHandler ,
11
- type FromTo ,
12
11
closeAutocomplete ,
12
+ getAutocompleteState ,
13
13
} from '../../../behavior/Autocomplete' ;
14
14
import { EmojiConsts } from '../EmojiSpecs' ;
15
15
@@ -30,7 +30,6 @@ export class EmojiHandler implements AutocompleteHandler {
30
30
31
31
private _view ?: EditorView ;
32
32
private _anchor : Element | null = null ;
33
- private _range ?: FromTo ;
34
33
private _popupCloser ?: AutocompletePopupCloser ;
35
34
36
35
private _suggestProps ?: EmojiSuggestComponentProps ;
@@ -133,12 +132,16 @@ export class EmojiHandler implements AutocompleteHandler {
133
132
}
134
133
135
134
private select ( ) {
136
- const { _view : view , _range : range } = this ;
137
- if ( ! view || ! range ) return ;
135
+ const { _view : view } = this ;
136
+ if ( ! view ) return ;
138
137
139
138
const emojiDef = this . _emojiCarousel ?. currentItem ;
140
139
if ( ! emojiDef ) return ;
141
140
141
+ const autocompleteState = getAutocompleteState ( view . state ) ;
142
+ if ( ! autocompleteState || ! autocompleteState . active ) return ;
143
+
144
+ const { range} = autocompleteState ;
142
145
const { tr, schema} = view . state ;
143
146
view . dispatch (
144
147
tr . replaceWith ( range . from , range . to , createEmoji ( schema , emojiDef ) ) . scrollIntoView ( ) ,
@@ -191,14 +194,12 @@ export class EmojiHandler implements AutocompleteHandler {
191
194
this . _view ?. focus ( ) ;
192
195
} ;
193
196
194
- private updateState ( { view, range } : AutocompleteAction ) {
197
+ private updateState ( { view} : AutocompleteAction ) {
195
198
this . _view = view ;
196
- this . _range = range ;
197
199
}
198
200
199
201
private clear ( ) {
200
202
this . _view = undefined ;
201
- this . _range = undefined ;
202
203
this . _anchor = null ;
203
204
this . _emojiCarousel = undefined ;
204
205
this . _popupCloser ?. cancelTimer ( ) ;
0 commit comments