- replace any with Prisma types (Post, Project, Album, Media) - use Component type for Svelte component parameters - use Snippet type for Svelte 5 render slots - use Record<string, unknown> for dynamic objects - add proper type guards for error handling - fix editor extension types with proper generics - all frontend components now have zero any type errors
36 lines
665 B
TypeScript
36 lines
665 B
TypeScript
import { mergeAttributes, Node } from '@tiptap/core'
|
|
import { SvelteNodeViewRenderer } from 'svelte-tiptap'
|
|
import type { Component } from 'svelte'
|
|
|
|
export const UrlEmbedPlaceholder = (component: Component) =>
|
|
Node.create({
|
|
name: 'urlEmbedPlaceholder',
|
|
|
|
group: 'block',
|
|
|
|
atom: true,
|
|
|
|
addAttributes() {
|
|
return {
|
|
url: {
|
|
default: null
|
|
}
|
|
}
|
|
},
|
|
|
|
parseHTML() {
|
|
return [
|
|
{
|
|
tag: 'div[data-url-embed-placeholder]'
|
|
}
|
|
]
|
|
},
|
|
|
|
renderHTML({ HTMLAttributes }) {
|
|
return ['div', mergeAttributes({ 'data-url-embed-placeholder': '' }, HTMLAttributes)]
|
|
},
|
|
|
|
addNodeView() {
|
|
return SvelteNodeViewRenderer(component)
|
|
}
|
|
})
|