import { handleImageUpload } from "../../lib/utils/editor"; import { EditorProps } from "@tiptap/pm/view"; export const TiptapEditorProps: EditorProps = { attributes: { class: "prose-lg prose-headings:font-display focus:outline-none", }, handleDOMEvents: { keydown: (_view, event) => { // prevent default event listeners from firing when slash command is active if (["ArrowUp", "ArrowDown", "Enter"].includes(event.key)) { const slashCommand = document.querySelector("#slash-command"); if (slashCommand) { return true; } } }, }, handlePaste: (view, event, _slice) => { if (event.clipboardData && event.clipboardData.files && event.clipboardData.files[0]) { event.preventDefault(); const file = event.clipboardData.files[0]; return handleImageUpload(file, view, event); } return false; }, handleDrop: (view, event, _slice, moved) => { if (!moved && event.dataTransfer && event.dataTransfer.files && event.dataTransfer.files[0]) { event.preventDefault(); const file = event.dataTransfer.files[0]; return handleImageUpload(file, view, event); } return false; }, };