diff --git a/apps/stage-tamagotchi/src/renderer/composables/use-restore-scroll.ts b/apps/stage-tamagotchi/src/renderer/composables/use-restore-scroll.ts index 7bf929bbc..6bab5e356 100644 --- a/apps/stage-tamagotchi/src/renderer/composables/use-restore-scroll.ts +++ b/apps/stage-tamagotchi/src/renderer/composables/use-restore-scroll.ts @@ -1,32 +1,33 @@ -import { nextTick, ref, watch } from 'vue' +import type { MaybeRefOrGetter } from 'vue' + +import { nextTick, toRef, watch } from 'vue' import { useRoute } from 'vue-router' const scrollPositions = new Map() -export function useRestoreScroll() { +export function useRestoreScroll(scrollContainer: MaybeRefOrGetter) { const route = useRoute() - - const scrollContainer = ref(null) + const scrollContainerRef = toRef(scrollContainer) watch( () => route.fullPath, async (newPath, oldPath) => { - if (!scrollContainer.value) { + if (!scrollContainerRef.value) { return } if (oldPath) { - scrollPositions.set(oldPath, scrollContainer.value.scrollTop) + scrollPositions.set(oldPath, scrollContainerRef.value.scrollTop) } await nextTick() - if (!scrollContainer.value) { + if (!scrollContainerRef.value) { return } const savedPosition = scrollPositions.get(newPath) || 0 - scrollContainer.value.scrollTop = savedPosition + scrollContainerRef.value.scrollTop = savedPosition }, ) diff --git a/apps/stage-tamagotchi/src/renderer/layouts/settings.vue b/apps/stage-tamagotchi/src/renderer/layouts/settings.vue index acd8509ed..bc84eb4b9 100644 --- a/apps/stage-tamagotchi/src/renderer/layouts/settings.vue +++ b/apps/stage-tamagotchi/src/renderer/layouts/settings.vue @@ -2,7 +2,7 @@ import { PageHeader } from '@proj-airi/stage-ui/components' import { useProvidersStore } from '@proj-airi/stage-ui/stores/providers' import { storeToRefs } from 'pinia' -import { computed } from 'vue' +import { computed, ref } from 'vue' import { useI18n } from 'vue-i18n' import { RouterView, useRoute } from 'vue-router' @@ -14,6 +14,8 @@ const route = useRoute() const { t } = useI18n() const providersStore = useProvidersStore() const { allProvidersMetadata } = storeToRefs(providersStore) +const scrollContainer = ref() +useRestoreScroll(scrollContainer) const routeHeaderMetadataMap = computed(() => { const map: Record = { @@ -134,8 +136,6 @@ const routeHeaderMetadataMap = computed(() => { const routeHeaderMetadata = computed(() => { return routeHeaderMetadataMap.value[route.path] || routeHeaderMetadataMap.value[`${route.path}/`] }) - -const { scrollContainer } = useRestoreScroll()