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

55 lines
1.6 KiB
TypeScript
Raw Normal View History

2023-05-04 12:16:39 +00:00
import type { Editor } from '@tiptap/core'
import styles from './FigureBubbleMenu.module.scss'
import { clsx } from 'clsx'
import { Icon } from '../../_shared/Icon'
import { useLocalize } from '../../../context/localize'
2023-05-04 12:16:39 +00:00
type Props = {
2023-05-04 12:16:39 +00:00
editor: Editor
ref: (el: HTMLElement) => void
2023-05-04 12:16:39 +00:00
}
export const FigureBubbleMenu = (props: Props) => {
const { t } = useLocalize()
2023-05-04 12:16:39 +00:00
return (
<div ref={props.ref} class={styles.FigureBubbleMenu}>
2023-05-06 12:38:22 +00:00
<button
type="button"
class={clsx(styles.bubbleMenuButton)}
onClick={() => props.editor.chain().focus().setImageFloat('left').run()}
2023-05-06 12:38:22 +00:00
>
<Icon name="editor-image-align-left" />
</button>
2023-05-07 13:16:03 +00:00
<button
type="button"
class={clsx(styles.bubbleMenuButton)}
onClick={() => props.editor.chain().focus().setImageFloat(null).run()}
2023-05-07 13:16:03 +00:00
>
<Icon name="editor-image-align-center" />
</button>
2023-05-06 12:38:22 +00:00
<button
type="button"
class={clsx(styles.bubbleMenuButton)}
onClick={() => props.editor.chain().focus().setImageFloat('right').run()}
2023-05-06 12:38:22 +00:00
>
<Icon name="editor-image-align-right" />
</button>
<div class={styles.delimiter} />
2023-05-07 13:16:03 +00:00
<button
type="button"
class={clsx(styles.bubbleMenuButton)}
onClick={() => {
props.editor.chain().focus().imageToFigure().run()
}}
>
<span style={{ color: 'white' }}>{t('Add signature')}</span>
2023-05-07 13:16:03 +00:00
</button>
<div class={styles.delimiter} />
<button type="button" class={clsx(styles.bubbleMenuButton)}>
2023-05-06 12:38:22 +00:00
<Icon name="editor-image-add" />
</button>
2023-05-04 12:16:39 +00:00
</div>
)
}