From 065add3d9442f4597a035e8b1164d85d9a52641d Mon Sep 17 00:00:00 2001 From: mokimo Date: Fri, 15 Nov 2019 14:57:55 +0100 Subject: [PATCH 1/5] fix(newline): shift enter at end of text adds data tag to the added
tag --- src/create-default-behavior.js | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/src/create-default-behavior.js b/src/create-default-behavior.js index 80e1e1f5..5b94f281 100644 --- a/src/create-default-behavior.js +++ b/src/create-default-behavior.js @@ -48,19 +48,14 @@ export default function createDefaultBehavior (editable) { }, newline (element, cursor) { - cursor.insertBefore(document.createElement('br')) - if (cursor.isAtEnd()) { - log('at the end') - const noWidthSpace = document.createTextNode('\u200B') - cursor.insertAfter(noWidthSpace) - - // var trailingBr = document.createElement('br') - // trailingBr.setAttribute('type', '-editablejs') - // cursor.insertAfter(trailingBr) + if (cursor.isAtTextEnd()) { + const trailingBr = document.createElement('br') + trailingBr.setAttribute('data-editable', 'remove') + cursor.insertBefore(trailingBr) } else { - log('not at the end') + cursor.insertBefore(document.createElement('br')) } cursor.setVisibleSelection() From 7d7ed8d269c6ce95843b26f8596c8e8c6a8fbaab Mon Sep 17 00:00:00 2001 From: mokimo Date: Fri, 15 Nov 2019 15:34:24 +0100 Subject: [PATCH 2/5] fix(newline): mark all break tags --- src/create-default-behavior.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/create-default-behavior.js b/src/create-default-behavior.js index 5b94f281..5ceffa95 100644 --- a/src/create-default-behavior.js +++ b/src/create-default-behavior.js @@ -55,7 +55,9 @@ export default function createDefaultBehavior (editable) { trailingBr.setAttribute('data-editable', 'remove') cursor.insertBefore(trailingBr) } else { - cursor.insertBefore(document.createElement('br')) + const trailingBr = document.createElement('br') + trailingBr.setAttribute('data-editable', 'newline') + cursor.insertBefore(trailingBr) } cursor.setVisibleSelection() From ac007a794b6156e53b64a67603172184e83767c8 Mon Sep 17 00:00:00 2001 From: mokimo Date: Fri, 22 Nov 2019 14:54:52 +0100 Subject: [PATCH 3/5] test: add cursor and newline dispatch test --- spec/cursor.spec.js | 7 +++++++ spec/dispatcher.spec.js | 13 +++++++++++++ 2 files changed, 20 insertions(+) diff --git a/spec/cursor.spec.js b/spec/cursor.spec.js index 2d78d6af..6dda42fe 100644 --- a/spec/cursor.spec.js +++ b/spec/cursor.spec.js @@ -53,6 +53,12 @@ describe('Cursor', function () { }) }) + describe('isAtEnd()', () => { + it('is true', () => { + expect(this.cursor.isAtTextEnd()).toBe(true) + }) + }) + describe('isAtBeginning()', () => { it('is false', () => { expect(this.cursor.isAtBeginning()).toBe(false) @@ -66,6 +72,7 @@ describe('Cursor', function () { // move the cursor so we can check the restore method. this.cursor.moveAtBeginning() expect(this.cursor.isAtBeginning()).toBe(true) + expect(this.cursor.isAtTextEnd()).toBe(false) this.cursor.restore() expect(this.cursor.isAtEnd()).toBe(true) diff --git a/spec/dispatcher.spec.js b/spec/dispatcher.spec.js index d0b3e176..77bc1145 100644 --- a/spec/dispatcher.spec.js +++ b/spec/dispatcher.spec.js @@ -195,5 +195,18 @@ describe('Dispatcher', () => { $elem.trigger(event) }) }) + + describe('on newline', () => { + beforeEach(() => { + event = $.Event('keydown') + event.shiftKey = true + event.keyCode = 13 + }) + + it('fires newline when shift + enter is pressed', (done) => { + on('newline', done) + $elem.trigger(event) + }) + }) }) }) From bc88437b6847f6d32e8045e84d857b497d04b227 Mon Sep 17 00:00:00 2001 From: mokimo Date: Fri, 22 Nov 2019 14:55:40 +0100 Subject: [PATCH 4/5] fix(newline): insert normal br inbetween text --- src/create-default-behavior.js | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/create-default-behavior.js b/src/create-default-behavior.js index 5ceffa95..e4d6ff4c 100644 --- a/src/create-default-behavior.js +++ b/src/create-default-behavior.js @@ -49,15 +49,12 @@ export default function createDefaultBehavior (editable) { newline (element, cursor) { - if (cursor.isAtTextEnd()) { const trailingBr = document.createElement('br') trailingBr.setAttribute('data-editable', 'remove') cursor.insertBefore(trailingBr) } else { - const trailingBr = document.createElement('br') - trailingBr.setAttribute('data-editable', 'newline') - cursor.insertBefore(trailingBr) + cursor.insertBefore(document.createElement('br')) } cursor.setVisibleSelection() From 374e00808423b8b97d0de53a1c873393d30dcc0e Mon Sep 17 00:00:00 2001 From: mokimo Date: Mon, 16 Dec 2019 16:56:49 +0100 Subject: [PATCH 5/5] chore: improve test description --- spec/cursor.spec.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spec/cursor.spec.js b/spec/cursor.spec.js index 6dda42fe..1a073bd3 100644 --- a/spec/cursor.spec.js +++ b/spec/cursor.spec.js @@ -47,8 +47,8 @@ describe('Cursor', function () { expect(this.range.endOffset).toEqual(1) }) - describe('isAtEnd()', () => { - it('is true', () => { + describe('isAtTextEnd()', () => { + it('returns true when at text end', () => { expect(this.cursor.isAtEnd()).toBe(true) }) })