diff --git a/packages/extension-collaboration/src/collaboration.ts b/packages/extension-collaboration/src/collaboration.ts index 9c15d2d9e2..bf14fadb61 100644 --- a/packages/extension-collaboration/src/collaboration.ts +++ b/packages/extension-collaboration/src/collaboration.ts @@ -9,6 +9,8 @@ import { } from 'y-prosemirror' import { UndoManager } from 'yjs' +type YSyncOpts = Parameters[1] + declare module '@tiptap/core' { interface Commands { collaboration: { @@ -41,6 +43,8 @@ export interface CollaborationOptions { * Fired when the content from Yjs is initially rendered to Tiptap. */ onFirstRender?: () => void, + + ySyncOptions?: YSyncOpts } export const Collaboration = Extension.create({ @@ -149,8 +153,11 @@ export const Collaboration = Extension.create({ } } - const onFirstRender = this.options.onFirstRender - const ySyncPluginOptions = onFirstRender ? { onFirstRender } : {} + const ySyncPluginOptions: YSyncOpts = { + ...(this.options.ySyncOptions ? { ...this.options.ySyncOptions } : {}), + ...(this.options.onFirstRender ? { ...this.options.onFirstRender } : {}), + } + const ySyncPluginInstance = ySyncPlugin(fragment, ySyncPluginOptions) return [ySyncPluginInstance, yUndoPluginInstance]