image icon indicating copy to clipboard operation
image copied to clipboard

Cannot assign to read only property 'caption'

Open rocketana opened this issue 1 year ago • 3 comments

A copy of the closed for any weird reason issue #179. The problem is still here.

The following error occurs after image uploading: Saving failed due to the Error TypeError: Cannot assign to read only property 'caption' of object '#<Object>'

As soon as any image added to the editor, the whole saving process is broken, no changed to other blocks can be saved due to the error.

The error comes from here:

{
    key: "save",
    value: function() {
        var e = this.ui.nodes.caption;
        return this._data.caption = e.innerHTML,  <--------- error
        this.data
    }
}

The problem may come from here :

# src/ui.js
caption: make('div', [this.CSS.input, this.CSS.caption], {
   contentEditable: !this.readOnly,
}),

But setting readOnly: false in the EditorJS config or the tool's config doesn't change anything.

Also, I see that the caption node is rendered correctly in the DOM:

<div class="cdx-input image-tool__caption" contenteditable="true" data-placeholder=""></div>

An ugly and absolutely not recommended solution that I used for now to make the editor work again - I changed the caption assignment in bundle. js. This way saving of the caption works as expected as well as all other data.

{
    key: "save",
    value: function() {
        var e = this.ui.nodes.caption;
        this._data = {...this._data, caption: e.innerHTML};
        return this._data, this.data
    }
}

Hopefully, I'll find another solution later as the the author of this tool seemed abandoned the project and is not going to fix issues.

rocketana avatar Apr 14 '23 11:04 rocketana

@rocketana have you found a solution for that problem? i have the same, and would be happy to fix it)

yaroslavx avatar Aug 22 '23 06:08 yaroslavx

i have the same problem

creotip avatar Jan 07 '24 09:01 creotip