import { Extension } from '@tiptap/core'; import { Plugin, PluginKey } from 'prosemirror-state'; export const NoTextInput = Extension.create({ name: 'noTextInput', addProseMirrorPlugins() { return [ new Plugin({ key: new PluginKey('noTextInput'), filterTransaction: (transaction) => { // If the transaction is adding text, stop it return !transaction.docChanged || transaction.steps.every((step) => { const { slice } = step.toJSON(); return !slice || !slice.content.some((node: { type: string; }) => node.type === 'text'); }); }, }), ]; }, });