diff --git a/packages/extension-task-item/index.ts b/packages/extension-task-item/index.ts index dc91de8a..ac64dceb 100644 --- a/packages/extension-task-item/index.ts +++ b/packages/extension-task-item/index.ts @@ -1,4 +1,7 @@ import { createNode, mergeAttributes } from '@tiptap/core' +import { wrappingInputRule } from 'prosemirror-inputrules' + +export const inputRegex = /^\s*(\[([ |x])\])\s$/ export interface TaskItemOptions { nested: boolean, @@ -94,6 +97,18 @@ const TaskItem = createNode({ } } }, + + addInputRules() { + return [ + wrappingInputRule( + inputRegex, + this.type, + match => ({ + checked: match[match.length - 1] === 'x', + }), + ), + ] + }, }) export default TaskItem diff --git a/packages/extension-task-list/index.ts b/packages/extension-task-list/index.ts index cada9581..bd73d1e2 100644 --- a/packages/extension-task-list/index.ts +++ b/packages/extension-task-list/index.ts @@ -1,8 +1,4 @@ import { Command, createNode, mergeAttributes } from '@tiptap/core' -import { wrappingInputRule } from 'prosemirror-inputrules' - -// TODO: add suport for [ ] and [x] -export const inputRegex = /^\s*(\[ \])\s$/ const TaskList = createNode({ name: 'task_list', @@ -33,12 +29,6 @@ const TaskList = createNode({ }, } }, - - addInputRules() { - return [ - wrappingInputRule(inputRegex, this.type), - ] - }, }) export default TaskList