diff --git a/packages/editor/src/extensions/task-item/component.tsx b/packages/editor/src/extensions/task-item/component.tsx index 394041fd1..17cad1f73 100644 --- a/packages/editor/src/extensions/task-item/component.tsx +++ b/packages/editor/src/extensions/task-item/component.tsx @@ -31,6 +31,7 @@ import { useIsMobile } from "../../toolbar/stores/toolbar-store"; import { isiOS } from "../../utils/platform"; +import { DesktopOnly } from "../../components/responsive"; export function TaskItemComponent( props: ReactNodeViewProps @@ -81,6 +82,9 @@ export function TaskItemComponent( borderRadius: "default", ":hover > .dragHandle": { opacity: editor.isEditable ? 1 : 0 + }, + ":hover > .taskItemTools": { + opacity: 1 } }} > @@ -118,6 +122,7 @@ export function TaskItemComponent( alignSelf: "start", mr: 2, p: "1px", + mt: "4px", cursor: editor.isEditable ? "pointer" : "unset", ":hover": { borderColor: "checked" @@ -160,6 +165,43 @@ export function TaskItemComponent( flex: 1 }} /> + + + { + if (!editor.current) return; + const pos = getPos(); + + // we need to get a fresh instance of the task list instead + // of using the one we got via props. + const node = editor.current.state.doc.nodeAt(pos); + if (!node) return; + + editor.commands.command(({ tr }) => { + tr.deleteRange(pos, pos + node.nodeSize); + return true; + }); + }} + /> + + ); diff --git a/packages/editor/src/extensions/task-list/component.tsx b/packages/editor/src/extensions/task-list/component.tsx index b947d7771..23ece6655 100644 --- a/packages/editor/src/extensions/task-list/component.tsx +++ b/packages/editor/src/extensions/task-list/component.tsx @@ -88,45 +88,7 @@ export function TaskListComponent( }} className="task-list-tools" > - {isNested ? ( - - {collapsed && ( - - {stats.checked}/{stats.total} - - )} - { - updateAttributes( - { collapsed: !collapsed }, - { addToHistory: false, preventUpdate: true } - ); - }} - /> - - ) : ( + {!isNested && (