* Remove `element.current` from `useEffect` dependencies
Changes to the `element.current` don't trigger `useEffect` rerender and shouldn't be used in the dependency array.
One discussion about is this is for example here: https://stackoverflow.com/questions/60476155/is-it-safe-to-use-ref-current-as-useeffects-dependency-when-ref-points-to-a-dom
It's also causing some subtle bugs when mounting and unmounting editors.
* Fix `FloatingMenu` and `BubbleMenu` element references
* Fix linting errors
* Don't register plugin when the editor is already destroyed; Simplify `HTMLElement` reference handling
* Fix lint error
* Add `editor` dependency when registering `BubbleMenuPlugin`
When we are initializing editor via the `useEditor` hook with dependencies the `BubbleMenu` component is only registered the first time the editor is initialized.
Adding editor to the dependency array registering/unregistering the `BubbleMenuPlugin` fixes this. (I tested exactly this code in our project.)
I also added a check that ensures that the menu element referenced via the `useRef` is defined when registering the plugin - otherwise, there is no point in registering the plugin.
* Add `editor` dependency when registering `FloatingMenuPlugin`
* add key option to bubble menu
* ignore react for now
* add shouldShow option to bubble menu extension
* improve types
* remove BubbleMenuPluginKey
* add key and shouldShow option to floating menu extension
* fix: don’t show floating menu within code block
* docs: add new menu options