refactor(tiptap): EditorOptions onReady/onUploadEvent callbacks replace polling
This commit is contained in:
parent
b09216ef29
commit
92cfda7d5a
@ -5,7 +5,7 @@ import { TableKit } from '@tiptap/extension-table'
|
|||||||
import { TaskList, TaskItem } from '@tiptap/extension-list'
|
import { TaskList, TaskItem } from '@tiptap/extension-list'
|
||||||
import { FileHandler } from '@tiptap/extension-file-handler'
|
import { FileHandler } from '@tiptap/extension-file-handler'
|
||||||
import { SlashCommand } from './slash-command'
|
import { SlashCommand } from './slash-command'
|
||||||
import { UploadCoordinator } from './upload-coordinator'
|
import { UploadCoordinator, type UploadEvent } from './upload-coordinator'
|
||||||
import { UploadImage, setUploadCoordinator } from './upload-image'
|
import { UploadImage, setUploadCoordinator } from './upload-image'
|
||||||
import './style.css'
|
import './style.css'
|
||||||
|
|
||||||
@ -16,8 +16,12 @@ export interface EditorOptions {
|
|||||||
onFocus?: () => void
|
onFocus?: () => void
|
||||||
onBlur?: () => void
|
onBlur?: () => void
|
||||||
editable?: boolean
|
editable?: boolean
|
||||||
// 新增:图片上传回调
|
// 图片上传回调
|
||||||
onImageUpload?: (file: File) => Promise<string>
|
onImageUpload?: (file: File) => Promise<string>
|
||||||
|
// 编辑器实例创建完成(含 coordinator)后同步触发一次,替代 window.__tiptap_ready 轮询
|
||||||
|
onReady?: () => void
|
||||||
|
// 上传状态事件(error/success/removed + counts),替代 window.__tiptap_uploads 轮询
|
||||||
|
onUploadEvent?: (event: UploadEvent) => void
|
||||||
}
|
}
|
||||||
|
|
||||||
class TiptapEditorInstance {
|
class TiptapEditorInstance {
|
||||||
@ -129,10 +133,18 @@ class TiptapEditorInstance {
|
|||||||
})
|
})
|
||||||
|
|
||||||
// 创建上传协调器,注入给 NodeView 的 onRetry/onRemove
|
// 创建上传协调器,注入给 NodeView 的 onRetry/onRemove
|
||||||
|
// onUploadEvent 透传给 coordinator.emit,未提供时空操作兜底
|
||||||
if (this.options.onImageUpload) {
|
if (this.options.onImageUpload) {
|
||||||
this.coordinator = new UploadCoordinator(this.editor, this.options.onImageUpload)
|
this.coordinator = new UploadCoordinator(
|
||||||
|
this.editor,
|
||||||
|
this.options.onImageUpload,
|
||||||
|
this.options.onUploadEvent ?? (() => {}),
|
||||||
|
)
|
||||||
setUploadCoordinator(this.coordinator)
|
setUploadCoordinator(this.coordinator)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 通知宿主编辑器已就绪(替代 window.__tiptap_ready 轮询)
|
||||||
|
this.options.onReady?.()
|
||||||
}
|
}
|
||||||
|
|
||||||
getMarkdown(): string {
|
getMarkdown(): string {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user