BUG: Uncaught TypeError: Failed to execute 'appendChild' on 'Node': parameter 1 is not of type 'Node'.
See original GitHub issueGrapesJS version
- I confirm to use the latest version of GrapesJS
What browser are you using?
chrome new version
Reproducible demo link
https://codesandbox.io/s/grapejs-reactjs-forked-zqnqo?file=/src/Editor.js
Describe the bug
How to reproduce the bug?
- Just drag and drop image block to canvas
- also drag and drop custom image block to canvas can be found on landing pages block
Live demo : https://codesandbox.io/s/grapejs-reactjs-forked-zqnqo?file=/src/Editor.js
What is the expected behavior?
When the user drops custom image block, default image block, or double-clicking any image on canvas instead of opening the default modal image uploader I want to open my custom react-modal
What is the current behavior?
Now when the user drops the image on canvas or doubles click the image for replacing the image it opens up the default image uploader,
If is necessary to execute some code in order to reproduce the bug, paste it here below:
import React, { useState, useEffect } from "react";
import grapesjs from "grapesjs";
import block from "grapesjs-blocks-basic";
import ModalImages from "./ModalImages";
const Editor = () => {
const [editor, setEditor] = useState(null);
function imageBlock(editor) {
editor.BlockManager.add("image-block", {
label: '<i class="fa fa-picture-o" aria-hidden="true"></i>',
type: "image",
content: '<image src="" />',
category: {
id: "image-block",
label: "image-block",
open: true
},
selectable: true,
render: ({ model, className }) => `<div class="${className}__my-wrap">
${model.get("label")}
Image
</div>`
});
}
useEffect(() => {
const editor = grapesjs.init({
container: "#editor",
storageManager: false,
blockManager: true,
plugins: [block, imageBlock]
});
const bm = editor.BlockManager;
editor.on("load", () => {
editor.BlockManager.render([
bm.get("image-block").set("category", "Landing Pages")
]);
editor.BlockManager.getCategories().each((ctg) => ctg.set("open", false));
});
let modal = editor.Modal;
editor.on("component:add", (model, argument) => {
console.log("model", model);
if (model.getName() === "Image") {
modal.setContent(ModalImages);
}
});
setEditor(editor);
}, []);
console.log("editor", editor);
return (
<>
<div id="editor"></div>
</>
);
};
export default Editor;
Code of Conduct
- I agree to follow this project’s Code of Conduct
Issue Analytics
- State:
- Created 2 years ago
- Comments:5 (1 by maintainers)
Top Results From Across the Web
Failed to execute 'appendChild' on 'Node': parameter 1 is not ...
This can happen if you accidentally are not dragging the element that does have an id assigned (for example you are ...
Read more >Uncaught TypeError: Failed to execute 'appendChild' on 'Node'
Uncaught TypeError : Failed to execute 'appendChild' on 'Node': parameter 1 is not of type 'Node'. In summation, the issue was that I...
Read more >Uncaught TypeError: Failed to execute 'appendChild' on 'Node'
The list gets display perfectly fine. Now what i want is when i am trying to use/drag that value and drop is some...
Read more >Failed to execute 'appendChild' on 'Node': parameter 1 is not ...
It's actually a simple answer. Your function is returning a string rather than the div node. appendChild can only append a node. For...
Read more >Error: Failed to execute 'appendChild' on 'Node': parameter 1 ...
It's actually a simple answer. Your function is returning a string rather than the div node. appendChild can only append a node. ......
Read more >
Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free
Top Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
@artf I solved the issue it was about closure problem , the solution just passing the URL as options as follows
U can close the issue , again thank you so much for this library god bless ya
when you run
editor.command.run('open-assets')
you have to pass options, eg.