Spaces:
Sleeping
Sleeping
| import { Node, mergeAttributes } from "@tiptap/core"; | |
| import { ReactNodeViewRenderer } from "@tiptap/react"; | |
| import { ImageUploadView } from "../ImageUploadView"; | |
| declare module "@tiptap/core" { | |
| interface Commands<ReturnType> { | |
| imageUpload: { | |
| insertImageUpload: () => ReturnType; | |
| }; | |
| } | |
| } | |
| export const ImageUpload = Node.create({ | |
| name: "imageUpload", | |
| group: "block", | |
| atom: true, | |
| draggable: true, | |
| parseHTML() { | |
| return [{ tag: 'div[data-type="image-upload"]' }]; | |
| }, | |
| renderHTML({ HTMLAttributes }) { | |
| return [ | |
| "div", | |
| mergeAttributes(HTMLAttributes, { "data-type": "image-upload" }), | |
| ]; | |
| }, | |
| addCommands() { | |
| return { | |
| insertImageUpload: | |
| () => | |
| ({ commands }) => { | |
| return commands.insertContent({ type: this.name }); | |
| }, | |
| }; | |
| }, | |
| addNodeView() { | |
| return ReactNodeViewRenderer(ImageUploadView); | |
| }, | |
| }); | |