mirror of
https://github.com/flarum/core.git
synced 2025-07-25 18:51:40 +02:00
Don't use browser scroll restore in DiscussionPage (#2476)
Although native browser scroll restorations have become quite powerful, it interferes with Flarum's PostStream, so if we're on a DiscussionPage, we use manual scroll restoration.
This commit is contained in:
committed by
GitHub
parent
c100316451
commit
35228b4b27
@@ -29,6 +29,13 @@ export default class Page extends Component {
|
|||||||
* @type {Boolean}
|
* @type {Boolean}
|
||||||
*/
|
*/
|
||||||
this.scrollTopOnCreate = true;
|
this.scrollTopOnCreate = true;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Whether the browser should restore scroll state on refreshes.
|
||||||
|
*
|
||||||
|
* @type {Boolean}
|
||||||
|
*/
|
||||||
|
this.useBrowserScrollRestoration = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
oncreate(vnode) {
|
oncreate(vnode) {
|
||||||
@@ -41,6 +48,10 @@ export default class Page extends Component {
|
|||||||
if (this.scrollTopOnCreate) {
|
if (this.scrollTopOnCreate) {
|
||||||
$(window).scrollTop(0);
|
$(window).scrollTop(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ('scrollRestoration' in history) {
|
||||||
|
history.scrollRestoration = this.useBrowserScrollRestoration ? 'auto' : 'manual';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
onremove() {
|
onremove() {
|
||||||
|
@@ -18,6 +18,8 @@ export default class DiscussionPage extends Page {
|
|||||||
oninit(vnode) {
|
oninit(vnode) {
|
||||||
super.oninit(vnode);
|
super.oninit(vnode);
|
||||||
|
|
||||||
|
this.useBrowserScrollRestoration = false;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The discussion that is being viewed.
|
* The discussion that is being viewed.
|
||||||
*
|
*
|
||||||
|
Reference in New Issue
Block a user