diff --git a/.changeset/grumpy-walls-look.md b/.changeset/grumpy-walls-look.md new file mode 100644 index 000000000..28323da3b --- /dev/null +++ b/.changeset/grumpy-walls-look.md @@ -0,0 +1,5 @@ +--- +'slate': patch +--- + +Handle backspace correctly for grapheme clusters in Bengali diff --git a/packages/slate/src/transforms-text/delete-text.ts b/packages/slate/src/transforms-text/delete-text.ts index ce2aa62c4..b990340ba 100644 --- a/packages/slate/src/transforms-text/delete-text.ts +++ b/packages/slate/src/transforms-text/delete-text.ts @@ -169,15 +169,17 @@ export const deleteText: TextTransforms['delete'] = (editor, options = {}) => { }) } - // For Thai script, deleting N character(s) backward should delete + // For certain scripts, deleting N character(s) backward should delete // N code point(s) instead of an entire grapheme cluster. // Therefore, the remaining code points should be inserted back. + // Bengali: \u0980-\u09FF + // Thai: \u0E00-\u0E7F if ( isCollapsed && reverse && unit === 'character' && removedText.length > 1 && - removedText.match(/[\u0E00-\u0E7F]+/) + removedText.match(/[\u0980-\u09FF\u0E00-\u0E7F]+/) ) { Transforms.insertText( editor,