mirror of
https://github.com/rzmk/learnhouse.git
synced 2025-12-19 04:19:25 +00:00
29 lines
772 B
TypeScript
29 lines
772 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'
|
|
)
|
|
)
|
|
})
|
|
)
|
|
},
|
|
}),
|
|
]
|
|
},
|
|
})
|