FIX: bolding text when selection has a leading space
This commit is contained in:
parent
a212540779
commit
7be90a885c
|
@ -360,14 +360,19 @@ export default Ember.Component.extend({
|
|||
|
||||
const textarea = this.$('textarea.d-editor-input')[0];
|
||||
const value = textarea.value;
|
||||
const start = textarea.selectionStart;
|
||||
var start = textarea.selectionStart;
|
||||
let end = textarea.selectionEnd;
|
||||
|
||||
// Windows selects the space after a word when you double click
|
||||
// trim trailing spaces cause **test ** would be invalid
|
||||
while (end > start && /\s/.test(value.charAt(end-1))) {
|
||||
end--;
|
||||
}
|
||||
|
||||
// trim leading spaces cause ** test** would be invalid
|
||||
while(end > start && /\s/.test(value.charAt(start))) {
|
||||
start++;
|
||||
}
|
||||
|
||||
const selVal = value.substring(start, end);
|
||||
const pre = value.slice(0, start);
|
||||
const post = value.slice(end);
|
||||
|
|
|
@ -62,6 +62,18 @@ function testCase(title, testFunc) {
|
|||
});
|
||||
}
|
||||
|
||||
testCase(`selecting the space before a word`, function(assert, textarea) {
|
||||
textarea.selectionStart = 5;
|
||||
textarea.selectionEnd = 7;
|
||||
|
||||
click(`button.bold`);
|
||||
andThen(() => {
|
||||
assert.equal(this.get('value'), `hello **w**orld.`);
|
||||
assert.equal(textarea.selectionStart, 8);
|
||||
assert.equal(textarea.selectionEnd, 9);
|
||||
});
|
||||
});
|
||||
|
||||
testCase(`selecting the space after a word`, function(assert, textarea) {
|
||||
textarea.selectionStart = 0;
|
||||
textarea.selectionEnd = 6;
|
||||
|
|
Loading…
Reference in New Issue