GrapesJS / grapesjs

Free and Open source Web Builder Framework. Next generation tool for building templates without coding
https://grapesjs.com
BSD 3-Clause "New" or "Revised" License
22.36k stars 4.05k forks source link

BUG: When pasting plain text into text element in Chrome #4037

Closed denisdal closed 2 years ago

denisdal commented 2 years ago

GrapesJS version

What browser are you using?

Chrome 96.0.4664.110

Reproducible demo link

I haven't a public one

Describe the bug

How to reproduce the bug?

  1. Use Chrome and Grapes newsletter Editor
  2. drag a "Text" element into the page and write something in it.
  3. In the same element, press "Enter" so you have a new line and paste some plain text
  4. Save the template somewhere in order to have it if you reload the page

What is the expected behavior? Have a "Text" element with all the editable text inserted before

What is the current behavior? Grapes generate a "Box" element with inside the written text that is no longer editable and N "Text" element's for each rows pasted before (editable)

This behavior apply only Chrome but may affect other Webkit's browsers. Thanks

Code of Conduct

artf commented 2 years ago

The default exported template in HTML doesn't have any reference of the Text component so, there is no way to know from all the possible tags where the text component should be identified. This is why when you store and reload templates you should always rely on JSON data of the project and not on HTML/CSS. One option would be to export "re-importable" HTML with data-gjs-* attributes.