Unobserve status on unmount (#4013)
This fixes a warning on status unmounting (e.g. deletion). This also resets IntersectionObserverWrapper on disconnect to avoid `unobserve()` calls which has bug in Edge.
This commit is contained in:
parent
34c8a46d7d
commit
9c03fd9cae
|
@ -90,6 +90,10 @@ export default class Status extends ImmutablePureComponent {
|
||||||
}
|
}
|
||||||
|
|
||||||
componentWillUnmount () {
|
componentWillUnmount () {
|
||||||
|
if (this.props.intersectionObserverWrapper) {
|
||||||
|
this.props.intersectionObserverWrapper.unobserve(this.props.id, this.node);
|
||||||
|
}
|
||||||
|
|
||||||
this.componentMounted = false;
|
this.componentMounted = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -37,9 +37,18 @@ class IntersectionObserverWrapper {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
unobserve (id, node) {
|
||||||
|
if (this.observer) {
|
||||||
|
delete this.callbacks[id];
|
||||||
|
this.observer.unobserve(node);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
disconnect () {
|
disconnect () {
|
||||||
if (this.observer) {
|
if (this.observer) {
|
||||||
|
this.callbacks = {};
|
||||||
this.observer.disconnect();
|
this.observer.disconnect();
|
||||||
|
this.observer = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Reference in a new issue