fix: resolve whitespace bug and bump version to 2.30.8 (#2881)

This commit is contained in:
Vineeth 2024-12-03 22:05:22 +05:30 committed by GitHub
commit 931ed2041a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 49 additions and 5 deletions

View file

@ -1,5 +1,9 @@
# Changelog
### 2.30.8
- `Fix` - Handle whitespace input in empty placeholder elements to prevent caret from moving unexpectedly to the end of the placeholder
### 2.30.7
- `Fix` - Link insertion in Safari fixed

View file

@ -1,6 +1,6 @@
{
"name": "@editorjs/editorjs",
"version": "2.30.7",
"version": "2.30.8",
"description": "Editor.js — open source block-style WYSIWYG editor with JSON output",
"main": "dist/editorjs.umd.js",
"module": "dist/editorjs.mjs",

View file

@ -373,7 +373,7 @@ export default class Dom {
nodeText = nodeText.replace(new RegExp(ignoreChars, 'g'), '');
}
return nodeText.trim().length === 0;
return nodeText.length === 0;
}
/**

View file

@ -118,6 +118,29 @@ describe('Backspace keydown', function () {
.last()
.should('have.text', '12');
});
it('   | — should delete visible and invisble whitespaces in the abscence of any non whitespace characters', function () {
createEditorWithTextBlocks([
'1',
'   ',
]);
cy.get('[data-cy=editorjs]')
.find('.ce-paragraph')
.last()
.click()
.type('{downArrow}')
.type('{backspace}')
.type('{backspace}')
.type('{backspace}')
.type('{backspace}');
cy.get('[data-cy=editorjs]')
.find('div.ce-block')
.last()
.should('have.text', '1');
});
});
it('should just delete chars (native behaviour) when some fragment is selected', function () {
@ -184,7 +207,7 @@ describe('Backspace keydown', function () {
* Saving logic is not necessary for this test
*/
// eslint-disable-next-line @typescript-eslint/no-empty-function
public save(): void {}
public save(): void { }
}
cy.createEditor({
@ -545,7 +568,7 @@ describe('Backspace keydown', function () {
* Saving logic is not necessary for this test
*/
// eslint-disable-next-line @typescript-eslint/no-empty-function
public save(): void {}
public save(): void { }
}
cy.createEditor({
@ -678,7 +701,7 @@ describe('Backspace keydown', function () {
describe('at the start of the first Block', function () {
it('should do nothing if Block is not empty', function () {
createEditorWithTextBlocks([ 'The only block. Not empty' ]);
createEditorWithTextBlocks(['The only block. Not empty']);
cy.get('[data-cy=editorjs]')
.find('.ce-paragraph')

View file

@ -77,4 +77,21 @@ describe('Placeholders', function () {
.getPseudoElementContent('::before')
.should('eq', 'none');
});
it('should be hidden when user adds trailing whitespace characters', function () {
cy.createEditor({
placeholder: PLACEHOLDER_TEXT,
});
cy.get('[data-cy=editorjs]')
.find('.ce-paragraph')
.as('firstBlock')
.getPseudoElementContent('::before')
.should('eq', PLACEHOLDER_TEXT);
cy.get('@firstBlock')
.type(' ')
.getPseudoElementContent('::before')
.should('eq', 'none');
});
});