diff options
author | Reverite <github@reverite.sh> | 2019-10-07 13:53:25 -0700 |
---|---|---|
committer | Reverite <github@reverite.sh> | 2019-10-07 13:53:25 -0700 |
commit | 38afc782051fe6faf06c2c9ca20304dd946cfb5c (patch) | |
tree | 2ff5e256635cbbeabe3347b6a0772415f9f1426c /app/javascript/flavours/glitch/components/column.js | |
parent | 46ada47e09af0da9c776ef83c0ff034c720a83d6 (diff) | |
parent | d2f7b8685cfd0ec9b69af505b56c791d9b5f1c82 (diff) |
Merge branch 'glitch' into production
Diffstat (limited to 'app/javascript/flavours/glitch/components/column.js')
-rw-r--r-- | app/javascript/flavours/glitch/components/column.js | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/app/javascript/flavours/glitch/components/column.js b/app/javascript/flavours/glitch/components/column.js index dc87818a5..5819d5362 100644 --- a/app/javascript/flavours/glitch/components/column.js +++ b/app/javascript/flavours/glitch/components/column.js @@ -10,10 +10,11 @@ export default class Column extends React.PureComponent { extraClasses: PropTypes.string, name: PropTypes.string, 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; @@ -35,11 +36,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 () { |