"use client"; import Placeholder from "@tiptap/extension-placeholder"; import { EditorContent, useEditor } from "@tiptap/react"; import StarterKit from "@tiptap/starter-kit"; import { Bold, Heading1, Heading2, Italic, List, ListOrdered, Redo2, Save, Trash2, Underline as UnderlineIcon, Undo2, } from "lucide-react"; import { type ReactNode, useReducer, useState } from "react"; import { useTranslation } from "react-i18next"; import { Button } from "@/components/ui/button"; import { ConfirmDialog } from "@/components/ui/confirm-dialog"; import { Input } from "@/components/ui/input"; import { Toolbar, ToolbarButton, ToolbarGroup, ToolbarSeparator, } from "@/components/ui/toolbar"; import type { Note } from "@/lib/notes"; function FormatButton({ active, disabled, label, onClick, children, }: { active?: boolean; disabled?: boolean; label: string; onClick: () => void; children: ReactNode; }) { return ( e.preventDefault()} render={ )} editor.chain().focus().toggleBold().run()} > editor.chain().focus().toggleItalic().run()} > editor.chain().focus().toggleUnderline().run()} > editor.chain().focus().toggleHeading({ level: 1 }).run() } > editor.chain().focus().toggleHeading({ level: 2 }).run() } > editor.chain().focus().toggleBulletList().run()} > editor.chain().focus().toggleOrderedList().run()} > editor.chain().focus().undo().run()} > editor.chain().focus().redo().run()} >
{onDelete && ( )} ); }