Fixed bug replacing full input value
This commit is contained in:
parent
ab1b8d5035
commit
a4789db98e
2 changed files with 9 additions and 6 deletions
|
@ -89,9 +89,15 @@
|
|||
static getInputSelectionPosition(input) {
|
||||
const inputValue = input.value;
|
||||
const selectionStart = input.selectionStart;
|
||||
const left = inputValue.slice(0, selectionStart + 1).search(/\S+$/);
|
||||
let left = inputValue.slice(0, selectionStart + 1).search(/\S+$/);
|
||||
const right = inputValue.slice(selectionStart).search(/\s/);
|
||||
|
||||
if (selectionStart === 0) {
|
||||
left = 0;
|
||||
} else if (selectionStart === inputValue.length && left < 0) {
|
||||
left = inputValue.length;
|
||||
}
|
||||
|
||||
return {
|
||||
left,
|
||||
right,
|
||||
|
|
|
@ -62,16 +62,13 @@
|
|||
|
||||
// Get the string to replace
|
||||
const selectionStart = input.selectionStart;
|
||||
let { left, right } = gl.DropdownUtils.getInputSelectionPosition(input);
|
||||
const { left } = gl.DropdownUtils.getInputSelectionPosition(input);
|
||||
let { right } = gl.DropdownUtils.getInputSelectionPosition(input);
|
||||
|
||||
if (right < 0) {
|
||||
right = inputValue.length;
|
||||
}
|
||||
|
||||
if (left < 0) {
|
||||
left += 1;
|
||||
}
|
||||
|
||||
input.value = `${inputValue.substr(0, left)}${word}${inputValue.substr(right + selectionStart)}`;
|
||||
gl.FilteredSearchDropdownManager.updateInputCaretPosition(selectionStart, input);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue