mirror of https://github.com/vector-im/riot-web
restore scroll state when timeline resizes using ResizeObserver
(only where supported, polyfill doesn't give good results)pull/21833/head
parent
68ba14909b
commit
b3e6cbfddd
|
@ -160,6 +160,13 @@ module.exports = React.createClass({
|
|||
|
||||
componentDidMount: function() {
|
||||
this.checkScroll();
|
||||
|
||||
if (typeof ResizeObserver !== "undefined") {
|
||||
this._timelineSizeObserver = new ResizeObserver(() => {
|
||||
this._restoreSavedScrollState();
|
||||
});
|
||||
this._timelineSizeObserver.observe(this.refs.itemlist);
|
||||
}
|
||||
},
|
||||
|
||||
componentDidUpdate: function() {
|
||||
|
@ -181,6 +188,10 @@ module.exports = React.createClass({
|
|||
//
|
||||
// (We could use isMounted(), but facebook have deprecated that.)
|
||||
this.unmounted = true;
|
||||
if (this._timelineSizeObserver) {
|
||||
this._timelineSizeObserver.disconnect();
|
||||
this._timelineSizeObserver = null;
|
||||
}
|
||||
},
|
||||
|
||||
onScroll: function(ev) {
|
||||
|
|
Loading…
Reference in New Issue