From 253e07e6dbbc4b27e2c60cacf9319b064609f82e Mon Sep 17 00:00:00 2001 From: fantasticit Date: Wed, 30 Mar 2022 14:24:53 +0800 Subject: [PATCH] feat: add taskItemClickable options --- packages/client/src/components/document/reader/editor.tsx | 4 ++++ packages/client/src/tiptap/extensions/task-item.ts | 8 ++++++++ 2 files changed, 12 insertions(+) diff --git a/packages/client/src/components/document/reader/editor.tsx b/packages/client/src/components/document/reader/editor.tsx index ef1bac72..44fe91e8 100644 --- a/packages/client/src/components/document/reader/editor.tsx +++ b/packages/client/src/components/document/reader/editor.tsx @@ -50,6 +50,10 @@ export const Editor: React.FC = ({ user, documentId, document }) => { getCollaborationExtension(provider), getCollaborationCursorExtension(provider, user), ], + editorProps: { + // @ts-ignore + taskItemClickable: true, + }, }); const [loading, toggleLoading] = useToggle(true); diff --git a/packages/client/src/tiptap/extensions/task-item.ts b/packages/client/src/tiptap/extensions/task-item.ts index 8f801080..ec5d8285 100644 --- a/packages/client/src/tiptap/extensions/task-item.ts +++ b/packages/client/src/tiptap/extensions/task-item.ts @@ -64,6 +64,8 @@ const CustomTaskItem = BuiltInTaskItem.extend({ }, addProseMirrorPlugins() { + const extensionThis = this; + return [ new Plugin({ props: { @@ -86,6 +88,12 @@ const CustomTaskItem = BuiltInTaskItem.extend({ if (view.editable) { const target = event.target as HTMLElement; if (target.tagName.toLowerCase() !== 'span') return false; + } else { + // 非编辑模式,仅支持配置 taskItemClickable 可点击 + // @ts-ignore + if (!extensionThis.editor.options.editorProps.taskItemClickable) { + return; + } } const parentElement = element.parentElement;