From 916502b56cfb9b9e9facc39af5b50d71a18edd97 Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Tue, 18 Feb 2020 11:05:33 +0800 Subject: [PATCH] contentEditable: fix new lines by using invisible character hack --- src/web/util/contentEditable.coffee | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/web/util/contentEditable.coffee b/src/web/util/contentEditable.coffee index 1f87f85..5fee3a7 100644 --- a/src/web/util/contentEditable.coffee +++ b/src/web/util/contentEditable.coffee @@ -9,7 +9,13 @@ class ContentEditable extends React.Component super props getText: -> - if @props.plainText then @domNode.innerText else @domNode.innerHTML + console.log @domNode.innerHTML + do => + if @props.plainText + @domNode.innerText + else + @domNode.innerHTML + .replace /\u200C/g, '' setText: (text) -> if @props.plainText @@ -63,12 +69,19 @@ class ContentEditable extends React.Component .insertNode document.createTextNode paste ev.preventDefault() + onKeyDown: (ev) => + if ev.keyCode == 13 + # Without U+200C, the new line will not work properly + document.execCommand 'insertHTML', false, '
\u200C' + ev.preventDefault() + render: ->