learnhouse/apps/web/components/Objects/Editor/Extensions/NoTextInput/NoTextInput.tsx
2024-01-14 12:08:39 +01:00

21 lines
No EOL
683 B
TypeScript

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');
});
},
}),
];
},
});