somewhat fix scrolling behaviour #127
3 changed files with 8 additions and 7 deletions
|
@ -377,8 +377,9 @@ const afterStoreSetup = async ({ store, i18n }) => {
|
||||||
routes: routes(store),
|
routes: routes(store),
|
||||||
scrollBehavior: (to, _from, savedPosition) => {
|
scrollBehavior: (to, _from, savedPosition) => {
|
||||||
if (to.matched.some(m => m.meta.dontScroll)) {
|
if (to.matched.some(m => m.meta.dontScroll)) {
|
||||||
return false
|
return {}
|
||||||
}
|
}
|
||||||
|
|
||||||
return savedPosition || { left: 0, top: 0 }
|
return savedPosition || { left: 0, top: 0 }
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
|
@ -58,7 +58,7 @@ export default (store) => {
|
||||||
component: RemoteUserResolver,
|
component: RemoteUserResolver,
|
||||||
beforeEnter: validateAuthenticatedRoute
|
beforeEnter: validateAuthenticatedRoute
|
||||||
},
|
},
|
||||||
{ name: 'external-user-profile', path: '/users/:id', component: UserProfile },
|
{ name: 'external-user-profile', path: '/users/:id', component: UserProfile, meta: { dontScroll: true } },
|
||||||
{ name: 'interactions', path: '/users/:username/interactions', component: Interactions, beforeEnter: validateAuthenticatedRoute },
|
{ name: 'interactions', path: '/users/:username/interactions', component: Interactions, beforeEnter: validateAuthenticatedRoute },
|
||||||
{ name: 'dms', path: '/users/:username/dms', component: DMs, beforeEnter: validateAuthenticatedRoute },
|
{ name: 'dms', path: '/users/:username/dms', component: DMs, beforeEnter: validateAuthenticatedRoute },
|
||||||
{ name: 'registration', path: '/registration', component: Registration },
|
{ name: 'registration', path: '/registration', component: Registration },
|
||||||
|
@ -75,7 +75,7 @@ export default (store) => {
|
||||||
{ name: 'list-timeline', path: '/lists/:id', component: ListTimeline },
|
{ name: 'list-timeline', path: '/lists/:id', component: ListTimeline },
|
||||||
{ name: 'list-edit', path: '/lists/:id/edit', component: ListEdit },
|
{ name: 'list-edit', path: '/lists/:id/edit', component: ListEdit },
|
||||||
{ name: 'announcements', path: '/announcements', component: AnnouncementsPage },
|
{ name: 'announcements', path: '/announcements', component: AnnouncementsPage },
|
||||||
{ name: 'user-profile', path: '/:_(users)?/:name', component: UserProfile }
|
{ name: 'user-profile', path: '/:_(users)?/:name', component: UserProfile, meta: { dontScroll: true } }
|
||||||
]
|
]
|
||||||
|
|
||||||
return routes
|
return routes
|
||||||
|
|
|
@ -49,7 +49,7 @@ const UserProfile = {
|
||||||
created () {
|
created () {
|
||||||
const routeParams = this.$route.params
|
const routeParams = this.$route.params
|
||||||
this.load(routeParams.name || routeParams.id)
|
this.load(routeParams.name || routeParams.id)
|
||||||
this.tab = get(this.$route, 'query.tab', defaultTabKey)
|
this.tab = get(this.$route, 'query.hash', defaultTabKey).replace(/^#/, '')
|
||||||
},
|
},
|
||||||
unmounted () {
|
unmounted () {
|
||||||
this.stopFetching()
|
this.stopFetching()
|
||||||
|
@ -146,7 +146,7 @@ const UserProfile = {
|
||||||
},
|
},
|
||||||
onTabSwitch (tab) {
|
onTabSwitch (tab) {
|
||||||
this.tab = tab
|
this.tab = tab
|
||||||
this.$router.replace({ query: { tab } })
|
this.$router.replace({ hash: `#${tab}` })
|
||||||
},
|
},
|
||||||
linkClicked ({ target }) {
|
linkClicked ({ target }) {
|
||||||
if (target.tagName === 'SPAN') {
|
if (target.tagName === 'SPAN') {
|
||||||
|
@ -176,8 +176,8 @@ const UserProfile = {
|
||||||
this.switchUser(newVal)
|
this.switchUser(newVal)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
'$route.query': function (newVal) {
|
'$route.hash': function (newVal) {
|
||||||
this.tab = newVal.tab || defaultTabKey
|
this.tab = newVal.replace(/^#/, '') || defaultTabKey
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
|
|
Loading…
Reference in a new issue