floating-ui/popper.js.org

Memory leak in the tutorial example

jjagielka opened this issue · 0 comments

Tutorial shows the example implementation and we can find there:

 show() {
   ...
  modifiers: [
                ...options.modifiers,
                { name: 'eventListeners', enabled: true }, 
            ]

options.modifiers is an array, so the above code keeps on adding new object at each call of show().

The same mistake is in hide() function.

You should change it to something like that:

function enableListeners(modifiers, value) {
   const modifier = modifiers.find((x) => x.name === 'eventListeners');
   if (!modifier) return [...modifiers, { name: 'eventListeners', enabled: open }];
   modifier.enabled = value;
   return modifiers;
}

show() {
   ...
   modifiers: enableListeners(options.modifiers, true)
   ...