diff options
author | ThibG <thib@sitedethib.com> | 2020-03-17 20:43:55 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-03-17 20:43:55 +0100 |
commit | b998ec7c72adc3ff72d8929d03f6ed9dcc186c96 (patch) | |
tree | ad6fc42cf68780bc1e1c125d5125ecd27ff24139 | |
parent | cb12a2cdd3fbe2c07a556610596a2de5446b1f50 (diff) |
Fix WebUI crash in single-column mode on prehistoric browsers (#13267)
Fixes #13266
-rw-r--r-- | app/javascript/mastodon/components/scrollable_list.js | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/app/javascript/mastodon/components/scrollable_list.js b/app/javascript/mastodon/components/scrollable_list.js index 3a490e78e..65ca43911 100644 --- a/app/javascript/mastodon/components/scrollable_list.js +++ b/app/javascript/mastodon/components/scrollable_list.js @@ -82,15 +82,19 @@ export default class ScrollableList extends PureComponent { lastScrollWasSynthetic = false; scrollToTopOnMouseIdle = false; + _getScrollingElement = () => { + if (this.props.bindToDocument) { + return (document.scrollingElement || document.body); + } else { + return this.node; + } + } + setScrollTop = newScrollTop => { if (this.getScrollTop() !== newScrollTop) { this.lastScrollWasSynthetic = true; - if (this.props.bindToDocument) { - document.scrollingElement.scrollTop = newScrollTop; - } else { - this.node.scrollTop = newScrollTop; - } + this._getScrollingElement().scrollTop = newScrollTop; } }; @@ -151,15 +155,15 @@ export default class ScrollableList extends PureComponent { } getScrollTop = () => { - return this.props.bindToDocument ? document.scrollingElement.scrollTop : this.node.scrollTop; + return this._getScrollingElement().scrollTop; } getScrollHeight = () => { - return this.props.bindToDocument ? document.scrollingElement.scrollHeight : this.node.scrollHeight; + return this._getScrollingElement().scrollHeight; } getClientHeight = () => { - return this.props.bindToDocument ? document.scrollingElement.clientHeight : this.node.clientHeight; + return this._getScrollingElement().clientHeight; } updateScrollBottom = (snapshot) => { |