diff options
author | Eugen Rochko <eugen@zeonfederated.com> | 2019-08-01 19:17:17 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-08-01 19:17:17 +0200 |
commit | 2dee293c4c98486d387105224023fad02b8b0d96 (patch) | |
tree | ea40adfa08da1bf5f478c370f10b17c3024f0f40 /app/javascript/mastodon/components/column.js | |
parent | 8b9d0a05337b6bcf57b51abf45e21d9474bf2684 (diff) |
Fix scroll to top in single column UI (#11463)
Diffstat (limited to 'app/javascript/mastodon/components/column.js')
-rw-r--r-- | app/javascript/mastodon/components/column.js | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/app/javascript/mastodon/components/column.js b/app/javascript/mastodon/components/column.js index d45387463..55e3bfd5e 100644 --- a/app/javascript/mastodon/components/column.js +++ b/app/javascript/mastodon/components/column.js @@ -8,10 +8,11 @@ export default class Column extends React.PureComponent { static propTypes = { children: PropTypes.node, label: PropTypes.string, + bindToDocument: PropTypes.bool, }; scrollTop () { - const scrollable = this.node.querySelector('.scrollable'); + const scrollable = this.props.bindToDocument ? document.scrollingElement : this.node.querySelector('.scrollable'); if (!scrollable) { return; @@ -33,11 +34,19 @@ export default class Column extends React.PureComponent { } componentDidMount () { - this.node.addEventListener('wheel', this.handleWheel, detectPassiveEvents.hasSupport ? { passive: true } : false); + if (this.props.bindToDocument) { + document.addEventListener('wheel', this.handleWheel, detectPassiveEvents.hasSupport ? { passive: true } : false); + } else { + this.node.addEventListener('wheel', this.handleWheel, detectPassiveEvents.hasSupport ? { passive: true } : false); + } } componentWillUnmount () { - this.node.removeEventListener('wheel', this.handleWheel); + if (this.props.bindToDocument) { + document.removeEventListener('wheel', this.handleWheel); + } else { + this.node.removeEventListener('wheel', this.handleWheel); + } } render () { |