diff --git a/packages/table/src/transforms/deleteColumn.spec.tsx b/packages/table/src/transforms/deleteColumn.spec.tsx index 04a2d1e805..6594a9794c 100644 --- a/packages/table/src/transforms/deleteColumn.spec.tsx +++ b/packages/table/src/transforms/deleteColumn.spec.tsx @@ -119,7 +119,7 @@ describe('deleteColumn', () => { }); describe('when first row has 2 cells, second row has 1 cell, focus 11', () => { - it('should do nothing', () => { + it('should delete 11', () => { const input = ( diff --git a/packages/table/src/transforms/deleteColumn.ts b/packages/table/src/transforms/deleteColumn.ts index d0ed7b45af..fcd905f7c6 100644 --- a/packages/table/src/transforms/deleteColumn.ts +++ b/packages/table/src/transforms/deleteColumn.ts @@ -58,8 +58,14 @@ export const deleteColumn = (editor: PlateEditor) => { tableNode.children.forEach((row, rowIdx) => { pathToDelete[replacePathPos] = rowIdx; - // for rows with different lengths - if (colIndex > (row.children as TElement[]).length - 1) return; + // for tables containing rows of different lengths + // - don't delete if only one cell in row + // - don't delete if row doesn't have this cell + if ( + (row.children as TElement[]).length === 1 || + colIndex > (row.children as TElement[]).length - 1 + ) + return; removeNodes(editor, { at: pathToDelete,