Skip to content

Commit

Permalink
Check if hiddenTextarea is in current body
Browse files Browse the repository at this point in the history
In situations where the `document.body` was replaced, the check if `hiddenTextarea.parentNode === null` would return `false` even if in fact the _new_ `document.body` had no current `hiddenTextarea`, thus requiring a new one to be appended. The new logic checks if `!document.body.contains(hiddenTextarea)`, which should account for the _current_ `document.body`.

An alternative solution would be to check if `hiddenTextarea.isConnected`, which is probably more performant. Unfortunately, this property is not present in IE.

Yet another solution which _might_ be more performant at the expense of being more verbose, is to recursively check if `hiddenTextarea.parentNode === null` to confirm that it's in fact still in the _current_ DOM tree.

Fixes Andarist#247
  • Loading branch information
mendelk authored and Mendel Kramer committed Jul 28, 2020
1 parent 411cc93 commit dbc5222
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion src/calculateNodeHeight.ts
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ export default function calculateNodeHeight(
forceHiddenStyles(hiddenTextarea);
}

if (hiddenTextarea.parentNode === null) {
if (!document.body.contains(hiddenTextarea)) {
document.body.appendChild(hiddenTextarea);
}

Expand Down

0 comments on commit dbc5222

Please sign in to comment.