Hello,
I trying create custom PB (pagebuilder) component and every things looks fine.
I create component based on tabs and want to add custom attributes/template and etc. This component added in admin panel and I can grag&drop it, also I can add content. But after click save page, this data did't render again in admin panel, but in DB I can see my master.html template with all data. Also this component is rendered on storefront.
My question is, where I can create mistake?
I need any ideas how to fix this or debug.
P.s. I was thinking that problem is in differences between preview.html and master.html
This two files must have differences, but I'm talking about differences in structure or classes.
As for example:
preview.html
<div class="pagebuilder-content-type pagebuilder-tabs children-min-height"
attr="Object.assign({}, data.main.attributes())"
ko-style="Object.assign({}, data.main.style())"
css="Object.assign({}, data.main.css())"
event="{ mouseover: onMouseOver, mouseout: onMouseOut }, mouseoverBubble: false">
<render args="getOptions().template"
visible="focusedTab() === null" />
<div class="tabs-container"
afterRender="function (element) { onContainerRender.call(this, element); }">
<ul role="tablist"
class="tabs-navigation"
each="contentType.getChildren()"
attr="data.navigation.attributes"
ko-style="data.navigation.style"
css="data.navigation.css"
data-bind="sortableChildren: getSortableOptions()">
<with args="preview">
<li role="tab"
class="tab-header"
css="{focused: contentType.parentContentType.preview.focusedTab() === $index()}"
ko-style="contentType.parentContentType.preview.getTabHeaderStyles()"
click="function (context, event) { onClick($index(), event); }"
event="{ focusin: function (context, event) { onFocusIn($index(), event); }, focusout: function (context, event) { onFocusOut($index(), event); } }">
<a href="#no-tab"
class="tab-title focus-options"
attr="{ href: '#' + contentType.id }"
event="{ dragstart: function(context, event) { event.preventDefault(); }}">
<render args="getOptions().template" />
<span class="tab-drag-handle"
css="{disabled: contentType.parentContentType.children().length <= 1}"></span>
<span class="tab-title tab-name"
data-tab-title="true"
data-bind="liveEdit: { field: 'tab_name', placeholder: $t('...'), selectAll: true }, hasFocusNoScroll: contentType.parentContentType.preview.focusedTab() === $index()"></span>
</a>
</li>
</with>
</ul>
<div class="tabs-content children-min-height"
attr="data.content.attributes"
ko-style="data.content.style"
css="data.content.css">
<render args="childTemplate" />
</div>
</div>
</div>and master.html
<div class="lb-tab-wrapper"
attr="Object.assign({}, data.main.attributes())"
ko-style="Object.assign({}, data.main.style())"
css="Object.assign({}, data.main.css())">
<div class="lb-tab-top-line"
attr="Object.assign({}, data.background_wrapper.attributes())"
ko-style="Object.assign({}, data.background_wrapper.style())"
css="Object.assign({}, data.background_wrapper.css())"></div>
<div class="container-fluid">
<div class="lb-tab-arrow"
style="--arrow-offset: 0px"></div>
<div class="tabs-container tab-list-wrapper">
<ul role="tablist"
class="tabs-navigation lb-tab-list"
each="contentType.getChildren()"
attr="data.navigation.attributes"
ko-style="data.navigation.style"
css="data.navigation.css">
<with args="content">
<li role="tab"
class="tab-header lb-tab-list__item"
attr="Object.assign({}, contentType.parentContentType.content.data.headers.attributes(), { active: getData().default_active_tab }, {'data-tab': contentType.id })"
ko-style="contentType.parentContentType.content.data.headers.style"
css="contentType.parentContentType.content.data.headers.css">
<a href="#no-tab"
class="tab-title"
attr="{ href: '#' + contentType.id }">
<span text="getData().tab_name"></span>
</a>
</li>
</with>
</ul>
</div>
</div>
<div class="lb-tab-content tabs-content children-min-height"
attr="data.content.attributes"
ko-style="data.content.style"
css="data.content.css">
<render args="masterTemplate" />
</div>
</div>