@@ -420,8 +420,10 @@ class ReactTextareaAutocomplete extends React.Component<
420
420
const insertedTriggerModifier = insertedTrigger
421
421
? insertedTrigger [ 0 ] . length
422
422
: 1 ;
423
+
423
424
this . lastTrigger = newCaretPosition - insertedTriggerModifier ;
424
425
this . textareaRef . value = newValue ;
426
+ this . textareaRef . selectionEnd = newCaretPosition ;
425
427
this . _changeHandler ( ) ;
426
428
427
429
const scrollTop = this . textareaRef . scrollTop ;
@@ -619,9 +621,7 @@ class ReactTextareaAutocomplete extends React.Component<
619
621
this . setState ( {
620
622
data : null ,
621
623
dataLoading : false ,
622
- currentTrigger : null ,
623
- top : null ,
624
- left : null
624
+ currentTrigger : null
625
625
} ) ;
626
626
} ;
627
627
@@ -699,8 +699,24 @@ class ReactTextareaAutocomplete extends React.Component<
699
699
value
700
700
} ) ;
701
701
702
+ const setTopLeft = ( ) => {
703
+ const { top : newTop , left : newLeft } = getCaretCoordinates (
704
+ textarea ,
705
+ selectionEnd
706
+ ) ;
707
+
708
+ this . setState ( {
709
+ // make position relative to textarea
710
+ top : newTop - this . textareaRef . scrollTop || 0 ,
711
+ left : newLeft
712
+ } ) ;
713
+ } ;
714
+
702
715
const cleanLastTrigger = ( ) => {
703
716
this . lastTrigger = selectionEnd - 1 ;
717
+
718
+ this . _closeAutocomplete ( ) ;
719
+ setTopLeft ( ) ;
704
720
} ;
705
721
706
722
if ( selectionEnd <= this . lastTrigger ) {
@@ -788,16 +804,7 @@ class ReactTextareaAutocomplete extends React.Component<
788
804
// if the trigger got changed, let's reposition the autocomplete
789
805
this . state . currentTrigger !== currentTrigger
790
806
) {
791
- const { top : newTop , left : newLeft } = getCaretCoordinates (
792
- textarea ,
793
- selectionEnd
794
- ) ;
795
-
796
- this . setState ( {
797
- // make position relative to textarea
798
- top : newTop - this . textareaRef . scrollTop || 0 ,
799
- left : newLeft
800
- } ) ;
807
+ setTopLeft ( ) ;
801
808
}
802
809
803
810
this . escListenerInit ( ) ;
@@ -886,7 +893,7 @@ class ReactTextareaAutocomplete extends React.Component<
886
893
const { dataLoading, currentTrigger } = this . state ;
887
894
const suggestionData = this . _getSuggestions ( ) ;
888
895
889
- return ( dataLoading || suggestionData ) && currentTrigger ;
896
+ return ! ! ( ( dataLoading || suggestionData ) && currentTrigger ) ;
890
897
} ;
891
898
892
899
props : TextareaProps ;
0 commit comments