somewhat fix scrolling behaviour #127

Merged
floatingghost merged 3 commits from scroll into develop 2022-08-11 17:25:43 +00:00
3 changed files with 8 additions and 7 deletions

View file

@ -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 }
} }
}) })

View file

@ -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

View file

@ -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: {