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: Style gets wiped out when inserting components in multiple page using Page Manager #3455

Closed harsh201 closed 3 years ago

harsh201 commented 3 years ago

Version: 0.17.3

What is the expected behavior? Style should be retained across multiple pages

Describe the bug detailed We have use case where we save and reload the content of GrapesJS. We want to leverage Page Manager to reduce the content rendered and manage it in smaller chunks. The issue pops up when we try to load content in multiple pages. The CSS gets completely wiped out for earlier inserted pages.

Steps to Reproduce

Current Behavior Style gets wiped out.

Important Snippet From CodePen

const pageManager = editor.Pages;
editor.setComponents('<p id="abcd">TEST Page 1</P>');
editor.setStyle("#abcd {color: #FF00FF}")
pageManager.select('page-2');
editor.setComponents('<p id="efgh">TEST Page 2</P>');
editor.setStyle("#efgh {color: #FFF000}")

Are you able to attach screenshots, screencasts or a live demo?

CodePen Demo https://codepen.io/harsh201/pen/VwpepEZ

harsh201 commented 3 years ago

Hi @artf, any help here?

artf commented 3 years ago

Hi @harsh201 styles are available across all pages, so you shouldn't use editor.setStyle (which replaces all styles with a new set) but instead something like editor.getStyle().add('...')