cancel
Showing results for 
Search instead for 
Did you mean: 

Unable to save content block with my custom content type

SOLVED

Unable to save content block with my custom content type

Hello Smiley Very Happy

I am trying to create a custom content type for Magento's Page Builder. My content type is rendered correctly, but when I try to save a content block with that content type, I get the following error in browser console:

[ERROR] Page Builder was rendering for 5 seconds without releasing locks.

I have followed the official tutorial for creating content types and I am not sure why this is happening.

Here is my code:

Test/Test/view/adminhtml/pagebuilder/content_type/test.xml

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_PageBuilder:etc/content_type.xsd">
    <type name="test"
          label="Test"
          menu_section="add_content"
          component="Magento_PageBuilder/js/content-type"
          preview_component="Test_Test/js/content-type/test/preview"
          master_component="Test_Test/js/content-type/test/master"
          form="pagebuilder_base_form"
          icon="icon-pagebuilder-heading"
          sortOrder="21"
          translate="label">
        <children default_policy="deny"/>
        <parents default_policy="allow"/>
        <appearances>
            <appearance name="default"
                        default="true"
                        preview_template="Test_Test/content-type/test/default/preview"
                        master_template="Test_Test/content-type/test/default/master"
                        reader="Magento_PageBuilder/js/master-format/read/configurable">
            </appearance>
        </appearances>
    </type>
</config>

Test/Test/view/adminhtml/web/js/content-type/test/preview.js

define([
    'Magento_PageBuilder/js/content-type/preview'
], function (PreviewBase) {
    'use strict';
    var $super;


    function Preview(parent, config, stageId) {
        PreviewBase.call(this, parent, config, stageId);
    }

    Preview.prototype = Object.create(PreviewBase.prototype);
    $super = PreviewBase.prototype;

    Preview.prototype.retrieveOptions = function retrieveOptions() {
        var options = $super.retrieveOptions.call(this, arguments);
        delete options.edit;

        return options;
    };

    return Preview;
});

Test/Test/view/adminhtml/web/template/content-type/test/default/preview.html

<div attr="data.main.attributes"
     ko-style="data.main.style"
     class="pagebuilder-content-type"
     css="data.main.css"
     event="{ mouseover: onMouseOver, mouseout: onMouseOut }, mouseoverBubble: false">
</div>

Am I missing some part of the configuration? Are there any other files that I need in order for this to work correctly?

1 ACCEPTED SOLUTION

Accepted Solutions

Re: Unable to save content block with my custom content type

Hello @marijaivic5692 

 

Please follow the below link. I hope it will help to you

 

https://mage2gen.com/snippets/pagebuildercontenttype/

 

------------------------------------------------
If you've found one of my answers helpful, please give "Kudos" or "Accept as Solution"

View solution in original post

2 REPLIES 2

Re: Unable to save content block with my custom content type

Hello @marijaivic5692 

 

Please follow the below link. I hope it will help to you

 

https://mage2gen.com/snippets/pagebuildercontenttype/

 

------------------------------------------------
If you've found one of my answers helpful, please give "Kudos" or "Accept as Solution"

Re: Unable to save content block with my custom content type

Hi Smiley Very Happy

Thank you very much, that helped me a lot.

Do you maybe know where I can find an example of master.js file?