Issue #4537Opened August 29, 2022by salemkode0 reactions

BUG: RangeError Maximum call stack size exceeded

Question

GrapesJS version

  • I confirm to use the latest version of GrapesJS

What browser are you using?

Brave 1.33.105 Chromium: 96.0.4664.93

Reproducible demo link

https://codesandbox.io/s/relaxed-mccarthy-v2e37w

Describe the bug

How to reproduce the bug?

  1. Add type of component have img or svg tag
  2. Add this component to canvas

What is the expected behavior? Just It must be add without error

What is the current behavior? It will be return RangeError Maximum call stack size exceeded

If is necessary to execute some code in order to reproduce the bug, paste it here below:

const editor = grapesjs.init({
  container: "#gjs",
  fromElement: 1,
  storageManager: { type: 0 }
});

editor.DomComponents.addType("_img", {
  isComponent: (el) => {
    return true;
  },
  model: {
    defaults: {
      name: "main-block",
      components: /*HTML*/ `
      <img src="https://brave.com/static-assets/images/brave-logo.svg" />
    `
    }
  }
});

editor.BlockManager.add("_img", {
  label: "main-block",
  media: "mainTextIcon",
  content: [
    {
      type: "_img"
    }
  ]
});

Code of Conduct

  • I agree to follow this project's Code of Conduct

Answers (1)

artfSeptember 5, 20220 reactions

Hi @salemkode based on how custom components are handled by having that isComponent, which returns true with no conditions, generates the maximum call stack issue. It keeps creating new components as you have also the components property but as the new type is on top of the stack and it always returns true it keeps referring to itself. So I'd recommend properly adjusting your isComponent method or simply removing it.

Related Questions and Answers

Continue research with similar issue discussions.

Paid Plugins That Match This Issue

Curated by issue keywords and label relevance to help you ship faster.

View all plugins

Loading paid plugin recommendations...

Browse Plugin Categories

Jump directly to plugin category pages on the marketplace.