11import type { Editor } from '@tiptap/core' ;
22
33import { BubbleMenuImage , BubbleMenuImageGif , BubbleMenuLink , BubbleMenuText , BubbleMenuVideo , ColumnsBubbleMenu , ContentMenu , TableBubbleMenu } from '@/components' ;
4- import type { BubbleMenuProps as BubbleMenuPropsType } from '@/types' ;
5- import BubbleMenuKatex from '@/components/menus/components/BubbleMenuKatex' ;
4+ import { BubbleMenuDrawer } from '@/components/menus/components/BubbleMenuDrawer' ;
65import { BubbleMenuExcalidraw } from '@/components/menus/components/BubbleMenuExcalidraw' ;
76import { BubbleMenuIframe } from '@/components/menus/components/BubbleMenuIframe' ;
8- import { ImageGif } from '@/extensions ' ;
7+ import BubbleMenuKatex from '@/components/menus/components/BubbleMenuKatex ' ;
98import { BubbleMenuMermaid } from '@/components/menus/components/BubbleMenuMermaid' ;
109import { BubbleMenuTwitter } from '@/components/menus/components/BubbleMenuTwitter' ;
10+ import { ImageGif } from '@/extensions' ;
11+ import type { BubbleMenuProps as BubbleMenuPropsType } from '@/types' ;
1112
1213export interface BubbleMenuComponentProps {
1314 editor : Editor
@@ -27,19 +28,60 @@ export function BubbleMenu({ editor, disabled, bubbleMenu }: BubbleMenuComponent
2728 const extensionsNames = editor . extensionManager . extensions . map ( ext => ext . name ) ;
2829
2930 const renderMenuItems = ( ) => [
30- extensionsNames . includes ( 'columns' ) && ! bubbleMenu ?. columnConfig ?. hidden ? < ColumnsBubbleMenu key = "columns" editor = { editor } /> : null ,
31- extensionsNames . includes ( 'table' ) && ! bubbleMenu ?. tableConfig ?. hidden ? < TableBubbleMenu key = "table" editor = { editor } /> : null ,
32- extensionsNames . includes ( 'link' ) && ! bubbleMenu ?. linkConfig ?. hidden ? < BubbleMenuLink key = "link" editor = { editor } disabled = { disabled } /> : null ,
33- extensionsNames . includes ( 'image' ) && ! bubbleMenu ?. imageConfig ?. hidden ? < BubbleMenuImage key = "image" editor = { editor } disabled = { disabled } /> : null ,
34- extensionsNames . includes ( ImageGif . name ) && ! bubbleMenu ?. imageGifConfig ?. hidden ? < BubbleMenuImageGif key = "imageGif" editor = { editor } disabled = { disabled } /> : null ,
35- extensionsNames . includes ( 'video' ) && ! bubbleMenu ?. videoConfig ?. hidden ? < BubbleMenuVideo key = "video" editor = { editor } disabled = { disabled } /> : null ,
36- extensionsNames . includes ( 'katex' ) && ! bubbleMenu ?. katexConfig ?. hidden ? < BubbleMenuKatex key = "katex" editor = { editor } disabled = { disabled } /> : null ,
37- extensionsNames . includes ( 'excalidraw' ) && ! bubbleMenu ?. excalidrawConfig ?. hidden ? < BubbleMenuExcalidraw key = "excalidraw" editor = { editor } disabled = { disabled } /> : null ,
38- extensionsNames . includes ( 'mermaid' ) && ! bubbleMenu ?. mermaidConfig ?. hidden ? < BubbleMenuMermaid key = "mermaid" editor = { editor } disabled = { disabled } /> : null ,
39- extensionsNames . includes ( 'iframe' ) && ! bubbleMenu ?. iframeConfig ?. hidden ? < BubbleMenuIframe key = "iframe" editor = { editor } disabled = { disabled } /> : null ,
40- extensionsNames . includes ( 'twitter' ) && ! bubbleMenu ?. twitterConfig ?. hidden ? < BubbleMenuTwitter key = "twitter" editor = { editor } disabled = { disabled } /> : null ,
41- ! bubbleMenu ?. floatingMenuConfig ?. hidden ? < ContentMenu key = "content" editor = { editor } disabled = { disabled } /> : null ,
42- ! bubbleMenu ?. textConfig ?. hidden ? < BubbleMenuText key = "text" editor = { editor } disabled = { disabled } /> : null ,
31+ extensionsNames . includes ( 'columns' ) && ! bubbleMenu ?. columnConfig ?. hidden ? < ColumnsBubbleMenu editor = { editor }
32+ key = "columns"
33+ /> : null ,
34+ extensionsNames . includes ( 'table' ) && ! bubbleMenu ?. tableConfig ?. hidden ? < TableBubbleMenu editor = { editor }
35+ key = "table"
36+ /> : null ,
37+ extensionsNames . includes ( 'link' ) && ! bubbleMenu ?. linkConfig ?. hidden ? < BubbleMenuLink disabled = { disabled }
38+ editor = { editor }
39+ key = "link"
40+ /> : null ,
41+ extensionsNames . includes ( 'image' ) && ! bubbleMenu ?. imageConfig ?. hidden ? < BubbleMenuImage disabled = { disabled }
42+ editor = { editor }
43+ key = "image"
44+ /> : null ,
45+ extensionsNames . includes ( ImageGif . name ) && ! bubbleMenu ?. imageGifConfig ?. hidden ? < BubbleMenuImageGif disabled = { disabled }
46+ editor = { editor }
47+ key = "imageGif"
48+ /> : null ,
49+ extensionsNames . includes ( 'video' ) && ! bubbleMenu ?. videoConfig ?. hidden ? < BubbleMenuVideo disabled = { disabled }
50+ editor = { editor }
51+ key = "video"
52+ /> : null ,
53+ extensionsNames . includes ( 'katex' ) && ! bubbleMenu ?. katexConfig ?. hidden ? < BubbleMenuKatex disabled = { disabled }
54+ editor = { editor }
55+ key = "katex"
56+ /> : null ,
57+ extensionsNames . includes ( 'excalidraw' ) && ! bubbleMenu ?. excalidrawConfig ?. hidden ? < BubbleMenuExcalidraw disabled = { disabled }
58+ editor = { editor }
59+ key = "excalidraw"
60+ /> : null ,
61+ extensionsNames . includes ( 'mermaid' ) && ! bubbleMenu ?. mermaidConfig ?. hidden ? < BubbleMenuMermaid disabled = { disabled }
62+ editor = { editor }
63+ key = "mermaid"
64+ /> : null ,
65+ extensionsNames . includes ( 'iframe' ) && ! bubbleMenu ?. iframeConfig ?. hidden ? < BubbleMenuIframe disabled = { disabled }
66+ editor = { editor }
67+ key = "iframe"
68+ /> : null ,
69+ extensionsNames . includes ( 'twitter' ) && ! bubbleMenu ?. twitterConfig ?. hidden ? < BubbleMenuTwitter disabled = { disabled }
70+ editor = { editor }
71+ key = "twitter"
72+ /> : null ,
73+ ! bubbleMenu ?. floatingMenuConfig ?. hidden ? < ContentMenu disabled = { disabled }
74+ editor = { editor }
75+ key = "content"
76+ /> : null ,
77+ ! bubbleMenu ?. textConfig ?. hidden ? < BubbleMenuText disabled = { disabled }
78+ editor = { editor }
79+ key = "text"
80+ /> : null ,
81+ extensionsNames . includes ( 'drawer' ) && ! bubbleMenu ?. drawerConfig ?. hidden ? < BubbleMenuDrawer disabled = { disabled }
82+ editor = { editor }
83+ key = "drawer"
84+ /> : null ,
4385 ] ;
4486
4587 if ( bubbleMenu ?. render ) {
0 commit comments