diff --git a/src/components/Editor/BubbleMenu/IncutBubbleMenu.tsx b/src/components/Editor/BubbleMenu/IncutBubbleMenu.tsx index 120e1502..6cb7550f 100644 --- a/src/components/Editor/BubbleMenu/IncutBubbleMenu.tsx +++ b/src/components/Editor/BubbleMenu/IncutBubbleMenu.tsx @@ -15,6 +15,10 @@ const backgrounds = [null, 'white', 'black', 'yellow', 'pink', 'green'] export const IncutBubbleMenu = (props: Props) => { const { t } = useLocalize() const [substratBubbleOpen, setSubstratBubbleOpen] = createSignal(false) + const handleChangeBg = (bg) => { + props.editor.chain().focus().setArticleBg(bg).run() + setSubstratBubbleOpen(false) + } return (
- +
- {(bg) => ( -
props.editor.chain().focus().setArticleBg(bg).run()} - class={clsx(styles.color, styles[bg])} - /> - )} + {(bg) =>
handleChangeBg(bg)} class={clsx(styles.color, styles[bg])} />}
diff --git a/src/components/Editor/Editor.tsx b/src/components/Editor/Editor.tsx index 43705a45..4491a749 100644 --- a/src/components/Editor/Editor.tsx +++ b/src/components/Editor/Editor.tsx @@ -54,6 +54,20 @@ type Props = { const yDocs: Record = {} const providers: Record = {} +const fixedTippy = (editor, containerClassName: string) => { + return { + offset: [0, -16], + placement: 'top', + getReferenceClientRect: () => { + const selectedElement = editor.view.dom.querySelector('.has-focus') + if (selectedElement) { + return selectedElement.getBoundingClientRect() + } + return null + } + } +} + export const Editor = (props: Props) => { const { t } = useLocalize() const { user } = useSession() @@ -199,6 +213,16 @@ export const Editor = (props: Props) => { const { selection } = state const { empty } = selection return empty && e.isActive('blockquote') + }, + tippyOptions: { + offset: [0, 0], + placement: 'top', + getReferenceClientRect: () => { + const selectedElement = editor().view.dom.querySelector('.has-focus') + if (selectedElement) { + return selectedElement.getBoundingClientRect() + } + } } }), BubbleMenu.configure({ @@ -208,6 +232,16 @@ export const Editor = (props: Props) => { const { selection } = state const { empty } = selection return empty && e.isActive('article') + }, + tippyOptions: { + offset: [0, -16], + placement: 'top', + getReferenceClientRect: () => { + const selectedElement = editor().view.dom.querySelector('.has-focus') + if (selectedElement) { + return selectedElement.getBoundingClientRect() + } + } } }), BubbleMenu.configure({