fix caret positionning after autocompletion
This commit is contained in:
parent
c8c17ca44e
commit
5674127e28
@ -289,4 +289,13 @@ describe('CreateStatusComponent', () => {
|
||||
expect(result).toBe(`@nicolasconstant@social.nicolas-constant.com${newLine}${newLine}data`);
|
||||
});
|
||||
|
||||
it('should autocomplete - complex', () => {
|
||||
const newLine = String.fromCharCode(13, 10);
|
||||
let text = `Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque ullamcorper nulla eu metus euismod, non lobortis${newLine}quam congue. @sengi Ut hendrerit, nulla vel feugiat lobortis, diam ligula congue lacus, sed facilisis nisl dui at mauris.${newLine}Cras non hendrerit tellus. Donec eleifend metus quis nibh commodo${newLine}${newLine}data`;
|
||||
let pattern = '@sengi';
|
||||
let autosuggest = '@sengi@mastodon.social';
|
||||
|
||||
const result = <string>(<any>component).replacePatternWithAutosuggest(text, pattern, autosuggest);
|
||||
expect(result).toBe(`Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque ullamcorper nulla eu metus euismod, non lobortis${newLine}quam congue. @sengi@mastodon.social Ut hendrerit, nulla vel feugiat lobortis, diam ligula congue lacus, sed facilisis nisl dui at mauris.${newLine}Cras non hendrerit tellus. Donec eleifend metus quis nibh commodo${newLine}${newLine}data`);
|
||||
});
|
||||
});
|
@ -685,21 +685,12 @@ export class CreateStatusComponent implements OnInit, OnDestroy {
|
||||
|
||||
suggestionSelected(selection: AutosuggestSelection) {
|
||||
if (this.status.includes(selection.pattern)) {
|
||||
// let transformedStatus = this.status;
|
||||
// transformedStatus = transformedStatus.replace(new RegExp(` ${selection.pattern} `), ` ${selection.autosuggest} `).replace(' ', ' ');
|
||||
// transformedStatus = transformedStatus.replace(new RegExp(`${selection.pattern} `), `${selection.autosuggest} `).replace(' ', ' ');
|
||||
// transformedStatus = transformedStatus.replace(new RegExp(`${selection.pattern}$`), `${selection.autosuggest} `).replace(' ', ' ');
|
||||
|
||||
// const newLine = String.fromCharCode(13, 10);
|
||||
// transformedStatus = transformedStatus.replace(new RegExp(`${selection.pattern}${newLine}`), `${selection.autosuggest}${newLine}`).replace(' ', ' ');
|
||||
|
||||
// this.status = transformedStatus;
|
||||
|
||||
this.status = this.replacePatternWithAutosuggest(this.status, selection.pattern, selection.autosuggest);
|
||||
|
||||
|
||||
let newCaretPosition = this.status.indexOf(`${selection.autosuggest} `) + selection.autosuggest.length + 1;
|
||||
if (newCaretPosition > this.status.length) newCaretPosition = this.status.length;
|
||||
let cleanStatus = this.status.replace(/\r?\n/g, ' ');
|
||||
console.warn([cleanStatus]);
|
||||
let newCaretPosition = cleanStatus.indexOf(`${selection.autosuggest}`) + selection.autosuggest.length;
|
||||
if (newCaretPosition > cleanStatus.length) newCaretPosition = cleanStatus.length;
|
||||
|
||||
this.autosuggestData = null;
|
||||
this.hasSuggestions = false;
|
||||
@ -727,12 +718,9 @@ export class CreateStatusComponent implements OnInit, OnDestroy {
|
||||
let words = line.split(' ');
|
||||
|
||||
words = words.map(word => {
|
||||
console.warn(`+${word}+`);
|
||||
return word.replace(regex, `${autosuggest}`);
|
||||
});
|
||||
|
||||
console.log(words);
|
||||
|
||||
statusPerLinesPerWords.push(words);
|
||||
});
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user