Fix bug with parsing in abritrary react components
This commit is contained in:
parent
34c9dbb3e7
commit
2c2bc61788
|
@ -1,4 +1,4 @@
|
||||||
import { generateText, JSONContent } from '@tiptap/core'
|
import { generateText, JSONContent, Node } from '@tiptap/core'
|
||||||
import { generateJSON } from '@tiptap/html'
|
import { generateJSON } from '@tiptap/html'
|
||||||
// Tiptap starter extensions
|
// Tiptap starter extensions
|
||||||
import { Blockquote } from '@tiptap/extension-blockquote'
|
import { Blockquote } from '@tiptap/extension-blockquote'
|
||||||
|
@ -52,6 +52,26 @@ export function parseMentions(data: JSONContent): string[] {
|
||||||
return uniq(mentions)
|
return uniq(mentions)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO: this is a hack to get around the fact that tiptap doesn't have a
|
||||||
|
// way to add a node view without bundling in tsx
|
||||||
|
function skippableComponent(name: string): Node<any, any> {
|
||||||
|
return Node.create({
|
||||||
|
name,
|
||||||
|
|
||||||
|
group: 'block',
|
||||||
|
|
||||||
|
content: 'inline*',
|
||||||
|
|
||||||
|
parseHTML() {
|
||||||
|
return [
|
||||||
|
{
|
||||||
|
tag: 'grid-cards-component',
|
||||||
|
},
|
||||||
|
]
|
||||||
|
},
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
const stringParseExts = [
|
const stringParseExts = [
|
||||||
// StarterKit extensions
|
// StarterKit extensions
|
||||||
Blockquote,
|
Blockquote,
|
||||||
|
@ -79,6 +99,7 @@ const stringParseExts = [
|
||||||
renderText: ({ node }) =>
|
renderText: ({ node }) =>
|
||||||
'[embed]' + node.attrs.src ? `(${node.attrs.src})` : '',
|
'[embed]' + node.attrs.src ? `(${node.attrs.src})` : '',
|
||||||
}),
|
}),
|
||||||
|
skippableComponent('gridCardsComponent'),
|
||||||
TiptapTweet.extend({ renderText: () => '[tweet]' }),
|
TiptapTweet.extend({ renderText: () => '[tweet]' }),
|
||||||
TiptapSpoiler.extend({ renderHTML: () => ['span', '[spoiler]', 0] }),
|
TiptapSpoiler.extend({ renderHTML: () => ['span', '[spoiler]', 0] }),
|
||||||
]
|
]
|
||||||
|
|
Loading…
Reference in New Issue
Block a user