Skip to content

Commit 41fb42f

Browse files
committed
Fix performance issue
Roughtly following the suggestion here sstur#139
1 parent 867cf17 commit 41fb42f

File tree

2 files changed

+11
-7
lines changed

2 files changed

+11
-7
lines changed

packages/draft-js-import-element/src/stateFromElement.js

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -467,14 +467,18 @@ function collapseWhiteSpace(
467467
({text, characterMeta} = trimLeadingSpace(text, characterMeta));
468468
({text, characterMeta} = trimTrailingSpace(text, characterMeta));
469469
let i = text.length;
470+
let characterMetaArr = characterMeta.toArray();
470471
while (i--) {
471472
if (text.charAt(i) === ' ' && text.charAt(i - 1) === ' ') {
472473
text = text.slice(0, i) + text.slice(i + 1);
473-
characterMeta = characterMeta
474+
characterMetaArr = characterMetaArr
474475
.slice(0, i)
475-
.concat(characterMeta.slice(i + 1));
476+
.concat(characterMetaArr.slice(i + 1));
476477
}
477478
}
479+
480+
characterMeta = Seq(characterMetaArr);
481+
478482
// There could still be one space on either side of a softbreak.
479483
({text, characterMeta} = replaceTextWithMeta(
480484
{text, characterMeta},
@@ -503,12 +507,12 @@ function canHaveDepth(blockType: string): boolean {
503507

504508
function concatFragments(fragments: Array<TextFragment>): TextFragment {
505509
let text = '';
506-
let characterMeta: CharacterMetaSeq = Seq();
510+
let characterMetaArr = [];
507511
fragments.forEach((textFragment: TextFragment) => {
508512
text = text + textFragment.text;
509-
characterMeta = characterMeta.concat(textFragment.characterMeta);
513+
characterMetaArr.push(...textFragment.characterMeta.toArray());
510514
});
511-
return {text, characterMeta};
515+
return {text, characterMeta: Seq(characterMetaArr)};
512516
}
513517

514518
function addStyleFromTagName(

packages/draft-js-import-html/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@
2020
"prepublishOnly": "yarn build"
2121
},
2222
"dependencies": {
23-
"draft-js-import-element": "npm:@roamhq/draft-js-import-element@^2.0.3",
24-
"draft-js-utils": "npm:@roamhq/draft-js-utils@^2.0.1"
23+
"draft-js-import-element": "npm:@roamhq/draft-js-import-element@^2.0.10",
24+
"draft-js-utils": "npm:@roamhq/draft-js-utils@^2.0.5"
2525
},
2626
"peerDependencies": {
2727
"draft-js": ">=0.10.0",

0 commit comments

Comments
 (0)