In thread view, only scroll first update, scroll to replied-to post (#5322)

remotes/1727458204337373841/tmp_refs/heads/signup-info-prompt
Eugen Rochko 2017-10-11 19:21:44 +02:00 committed by GitHub
parent 6a50329a9c
commit 1823cf435a
1 changed files with 9 additions and 2 deletions

View File

@ -78,6 +78,7 @@ export default class Status extends ImmutablePureComponent {
componentWillReceiveProps (nextProps) { componentWillReceiveProps (nextProps) {
if (nextProps.params.statusId !== this.props.params.statusId && nextProps.params.statusId) { if (nextProps.params.statusId !== this.props.params.statusId && nextProps.params.statusId) {
this._scrolledIntoView = false;
this.props.dispatch(fetchStatus(nextProps.params.statusId)); this.props.dispatch(fetchStatus(nextProps.params.statusId));
} }
} }
@ -240,11 +241,17 @@ export default class Status extends ImmutablePureComponent {
} }
componentDidUpdate () { componentDidUpdate () {
if (this._scrolledIntoView) {
return;
}
const { status, ancestorsIds } = this.props; const { status, ancestorsIds } = this.props;
if (status && ancestorsIds && ancestorsIds.size > 0) { if (status && ancestorsIds && ancestorsIds.size > 0) {
const element = this.node.querySelectorAll('.focusable')[ancestorsIds.size]; const element = this.node.querySelectorAll('.focusable')[ancestorsIds.size - 1];
element.scrollIntoView();
element.scrollIntoView(true);
this._scrolledIntoView = true;
} }
} }