webapp/src/components/Editor/BubbleMenu/BlockquoteBubbleMenu.tsx

59 lines
1.7 KiB
TypeScript
Raw Normal View History

import type { Editor } from '@tiptap/core'
import { useLocalize } from '../../../context/localize'
import { Icon } from '../../_shared/Icon'
2023-05-29 17:14:58 +00:00
import { Popover } from '../../_shared/Popover'
import styles from './BubbleMenu.module.scss'
type Props = {
editor: Editor
ref: (el: HTMLElement) => void
}
export const BlockquoteBubbleMenu = (props: Props) => {
2023-05-29 17:14:58 +00:00
const { t } = useLocalize()
return (
2023-05-29 17:14:58 +00:00
<div ref={props.ref} class={styles.BubbleMenu}>
<Popover content={t('Alignment left')}>
{(triggerRef: (el) => void) => (
<button
ref={triggerRef}
type="button"
class={styles.bubbleMenuButton}
2023-05-29 17:14:58 +00:00
onClick={() => {
props.editor.chain().focus().setBlockQuoteFloat('left').run()
}}
>
<Icon name="editor-image-align-left" />
</button>
)}
</Popover>
<Popover content={t('Alignment center')}>
{(triggerRef: (el) => void) => (
<button
ref={triggerRef}
type="button"
class={styles.bubbleMenuButton}
2023-05-29 17:14:58 +00:00
onClick={() => props.editor.chain().focus().setBlockQuoteFloat(null).run()}
>
<Icon name="editor-image-align-center" />
</button>
)}
</Popover>
<Popover content={t('Alignment center')}>
{(triggerRef: (el) => void) => (
<button
ref={triggerRef}
type="button"
class={styles.bubbleMenuButton}
2023-05-29 17:14:58 +00:00
onClick={() => props.editor.chain().focus().setBlockQuoteFloat('right').run()}
>
<Icon name="editor-image-align-right" />
</button>
)}
</Popover>
</div>
)
}