refactor: move deleteTableWhenAllCellsSelected to its own file

This commit is contained in:
Philipp Kühn 2021-04-20 22:59:16 +02:00
parent 9ca865a253
commit 046d1ccb3b

View File

@ -0,0 +1,35 @@
import { KeyboardShortcutCommand, findParentNodeClosestToPos } from '@tiptap/core'
import { isCellSelection } from './isCellSelection'
export const deleteTableWhenAllCellsSelected: KeyboardShortcutCommand = ({ editor }) => {
const { selection } = editor.state
if (!isCellSelection(selection)) {
return false
}
let cellCount = 0
const table = findParentNodeClosestToPos(selection.ranges[0].$from, node => {
return node.type.name === 'table'
})
table?.node.descendants(node => {
if (node.type.name === 'table') {
return false
}
if (['tableCell', 'tableHeader'].includes(node.type.name)) {
cellCount += 1
}
})
const allCellsSelected = cellCount === selection.ranges.length
if (!allCellsSelected) {
return false
}
editor.commands.deleteTable()
return true
}