import {mergeAttributes, Node} from '@tiptap/react'; declare module '@tiptap/core' { interface Commands { embed: { setEmbed: (options: {src: string}) => ReturnType; }; } } export const Embed = Node.create({ name: 'embed', group: 'block', atom: true, addAttributes() { return { src: { default: null, }, }; }, parseHTML() { return [ { tag: 'iframe', }, ]; }, renderHTML({HTMLAttributes}) { return [ 'iframe', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), ]; }, addCommands() { return { setEmbed: options => ({commands}) => { return commands.insertContent({ type: this.name, attrs: options, }); }, }; }, });