From 7caa7f3b611f7dc7cc2295b822ae2594d6af91cb Mon Sep 17 00:00:00 2001 From: Hakadao Date: Wed, 11 Oct 2023 01:50:51 +0800 Subject: [PATCH] feat: scroll to top when homepage tab is changed --- src/contentScripts/views/App.vue | 2 ++ src/contentScripts/views/Home/Home.vue | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/src/contentScripts/views/App.vue b/src/contentScripts/views/App.vue index 96db267d..0bd4c0f0 100644 --- a/src/contentScripts/views/App.vue +++ b/src/contentScripts/views/App.vue @@ -19,6 +19,8 @@ import { AppPage, LanguageType } from '~/enums/appEnums' import { getUserID, hexToRGBA, smoothScrollToTop } from '~/utils/main' import emitter from '~/utils/mitt' +provide('handleBackToTop', handleBackToTop) + const activatedPage = ref(settings.value.startupPage ?? AppPage.Home) const { locale } = useI18n() const [showSettings, toggleSettings] = useToggle(false) diff --git a/src/contentScripts/views/Home/Home.vue b/src/contentScripts/views/Home/Home.vue index 698bf4ff..2f963028 100644 --- a/src/contentScripts/views/Home/Home.vue +++ b/src/contentScripts/views/Home/Home.vue @@ -4,6 +4,8 @@ import Following from './components/Following.vue' import emitter from '~/utils/mitt' import { settings } from '~/logic' +const handleBackToTop = inject('handleBackToTop') as () => void + const recommendContentKey = ref(`recommendContent${Number(new Date())}`) const activatedPage = ref<'RecommendContent' | 'Following'>('RecommendContent') const pages = { RecommendContent, Following } @@ -19,6 +21,10 @@ const tabs = reactive<{ label: string; value: 'RecommendContent' | 'Following' } }, ]) +watch(() => activatedPage.value, () => { + handleBackToTop() +}) + onMounted(() => { emitter.off('pageRefresh') emitter.on('pageRefresh', async () => {