properly position the caret after replacement

This commit is contained in:
Henry Jameson 2019-06-17 21:24:10 +03:00
parent a05fd042df
commit 5f4a8dcc05

View File

@ -130,10 +130,16 @@ const EmojiInput = {
const replacement = suggestion.replacement const replacement = suggestion.replacement
const newValue = Completion.replaceWord(this.value, this.wordAtCaret, replacement) const newValue = Completion.replaceWord(this.value, this.wordAtCaret, replacement)
this.$emit('input', newValue) this.$emit('input', newValue)
this.caret = 0
this.highlighted = 0 this.highlighted = 0
// Re-focus inputbox after clicking suggestion const position = this.wordAtCaret.start + replacement.length
this.input.elm.focus()
this.$nextTick(function () {
// Re-focus inputbox after clicking suggestion
this.input.elm.focus()
// Set selection right after the replacement instead of the very end
this.input.elm.setSelectionRange(position, position)
this.caret = position
})
e.preventDefault() e.preventDefault()
} }
}, },