refactor(tiptap): type CommandItem.editor as Editor, explicit SlashPopup return type
This commit is contained in:
parent
073f6936e3
commit
558191e922
@ -1,4 +1,4 @@
|
|||||||
import { Extension, type Range } from '@tiptap/core'
|
import { Extension, type Editor, type Range } from '@tiptap/core'
|
||||||
import { Suggestion, type SuggestionProps, type SuggestionKeyDownProps } from '@tiptap/suggestion'
|
import { Suggestion, type SuggestionProps, type SuggestionKeyDownProps } from '@tiptap/suggestion'
|
||||||
import { PluginKey } from '@tiptap/pm/state'
|
import { PluginKey } from '@tiptap/pm/state'
|
||||||
|
|
||||||
@ -6,7 +6,7 @@ interface CommandItem {
|
|||||||
title: string
|
title: string
|
||||||
description: string
|
description: string
|
||||||
icon: string
|
icon: string
|
||||||
command: (props: { editor: any; range: Range }) => void
|
command: (props: { editor: Editor; range: Range }) => void
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -198,7 +198,7 @@ export const SlashCommand = Extension.create<SlashCommandOptions>({
|
|||||||
)
|
)
|
||||||
},
|
},
|
||||||
render() {
|
render() {
|
||||||
let popup: ReturnType<typeof createPopup> | null = null
|
let popup: SlashPopup | null = null
|
||||||
|
|
||||||
return {
|
return {
|
||||||
onStart(props) {
|
onStart(props) {
|
||||||
@ -229,7 +229,16 @@ export const SlashCommand = Extension.create<SlashCommandOptions>({
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
function createPopup(props: SuggestionProps<CommandItem>) {
|
/** 斜杠命令浮层实例:供 Suggestion render 生命周期驱动。 */
|
||||||
|
interface SlashPopup {
|
||||||
|
component: HTMLElement
|
||||||
|
updateItems(items: CommandItem[]): void
|
||||||
|
updatePosition(): void
|
||||||
|
onKeyDown(props: SuggestionKeyDownProps): boolean
|
||||||
|
destroy(): void
|
||||||
|
}
|
||||||
|
|
||||||
|
function createPopup(props: SuggestionProps<CommandItem>): SlashPopup {
|
||||||
const component = document.createElement('div')
|
const component = document.createElement('div')
|
||||||
component.classList.add('slash-command')
|
component.classList.add('slash-command')
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user