import BoldIcon from '@heroicons/react/24/solid/BoldIcon' import H1Icon from '@heroicons/react/24/solid/H1Icon' import H2Icon from '@heroicons/react/24/solid/H2Icon' import H3Icon from '@heroicons/react/24/solid/H3Icon' import ItalicIcon from '@heroicons/react/24/solid/ItalicIcon' import ListBulletIcon from '@heroicons/react/24/solid/ListBulletIcon' import NumberedListIcon from '@heroicons/react/24/solid/NumberedListIcon' import { useEditorState } from '@tiptap/react' import { MdUndo, MdRedo, MdHorizontalRule } from 'react-icons/md' import type { Editor } from '@tiptap/react' export const TextEditorMenu = ({ editor }: { editor: Editor }) => { const editorState = useEditorState({ editor, selector: (ctx) => { return { isBold: ctx.editor.isActive('bold'), canBold: ctx.editor.can().chain().focus().toggleBold().run(), isItalic: ctx.editor.isActive('italic'), canItalic: ctx.editor.can().chain().focus().toggleItalic().run(), isStrike: ctx.editor.isActive('strike'), canStrike: ctx.editor.can().chain().focus().toggleStrike().run(), isCode: ctx.editor.isActive('code'), canCode: ctx.editor.can().chain().focus().toggleCode().run(), canClearMarks: ctx.editor.can().chain().focus().unsetAllMarks().run(), isParagraph: ctx.editor.isActive('paragraph'), isHeading1: ctx.editor.isActive('heading', { level: 1 }), isHeading2: ctx.editor.isActive('heading', { level: 2 }), isHeading3: ctx.editor.isActive('heading', { level: 3 }), isHeading4: ctx.editor.isActive('heading', { level: 4 }), isHeading5: ctx.editor.isActive('heading', { level: 5 }), isHeading6: ctx.editor.isActive('heading', { level: 6 }), isHeading: ctx.editor.isActive('heading'), isBulletList: ctx.editor.isActive('bulletList'), isOrderedList: ctx.editor.isActive('orderedList'), isCodeBlock: ctx.editor.isActive('codeBlock'), isBlockquote: ctx.editor.isActive('blockquote'), canUndo: ctx.editor.can().chain().focus().undo().run(), canRedo: ctx.editor.can().chain().focus().redo().run(), } }, }) return ( <>