import { BubbleMenu } from "@tiptap/react/menus"; import type { Editor } from "@tiptap/core"; import { Tooltip } from "../components/Tooltip"; import { Bold, Italic, Strikethrough, Code, Code2, Quote, Link, Heading2, MessageCircle, Sigma, } from "lucide-react"; interface BubbleToolbarProps { editor: Editor; onAddComment?: () => void; } function Btn({ onClick, active, tooltip, children, }: { onClick: () => void; active?: boolean; tooltip: string; children: React.ReactNode; }) { return ( ); } export function BubbleToolbar({ editor, onAddComment }: BubbleToolbarProps) { const setLink = () => { const url = window.prompt("URL:"); if (url) { editor.chain().focus().setLink({ href: url }).run(); } }; return (
editor.chain().focus().toggleBold().run()} active={editor.isActive("bold")} tooltip="Bold" > editor.chain().focus().toggleItalic().run()} active={editor.isActive("italic")} tooltip="Italic" > editor.chain().focus().toggleStrike().run()} active={editor.isActive("strike")} tooltip="Strikethrough" > editor.chain().focus().toggleCode().run()} active={editor.isActive("code")} tooltip="Code" > editor.chain().focus().insertInlineMath({ latex: "x^2" }).run()} active={editor.isActive("inlineMath")} tooltip="Inline math" > editor.chain().focus().toggleHeading({ level: 2 }).run()} active={editor.isActive("heading", { level: 2 })} tooltip="Heading" > editor.chain().focus().toggleBlockquote().run()} active={editor.isActive("blockquote")} tooltip="Quote" > editor.chain().focus().toggleCodeBlock().run()} active={editor.isActive("codeBlock")} tooltip="Code block" > {onAddComment && ( <> )}
); }