Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Check if hiddenTextarea is in current body #292

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

mendelk
Copy link

@mendelk mendelk commented Jul 28, 2020

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 #247

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
@changeset-bot
Copy link

changeset-bot bot commented Jul 28, 2020

💥 No Changeset

Latest commit: a43519c

Merging this PR will not cause any packages to be released. If these changes should not cause updates to packages in this repo, this is fine 🙂

If these changes should be published to npm, you need to add a changeset.

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@derrickreimer
Copy link

I encountered this situation (using Turbolinks) and can confirm that this PR solves the problem in my case.

leosullivan1 added a commit to leosullivan1/react-textarea-autosize that referenced this pull request Apr 29, 2021
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.

See here for more details Andarist#292
@mendelk
Copy link
Author

mendelk commented Aug 13, 2021

@Andarist Is there anything I can do to help get this merged? I get that you've got lots of other things vying for your attention!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Resize Stops Working after Browser Back
2 participants