diff options
| author | syuilo <Syuilotan@yahoo.co.jp> | 2022-12-27 14:36:33 +0900 |
|---|---|---|
| committer | syuilo <Syuilotan@yahoo.co.jp> | 2022-12-27 14:36:33 +0900 |
| commit | 9384f5399da39e53855beb8e7f8ded1aa56bf72e (patch) | |
| tree | ce5959571a981b9c4047da3c7b3fd080aa44222c /packages/client/src/components/global/RouterView.vue | |
| parent | wip: retention for dashboard (diff) | |
| download | misskey-9384f5399da39e53855beb8e7f8ded1aa56bf72e.tar.gz misskey-9384f5399da39e53855beb8e7f8ded1aa56bf72e.tar.bz2 misskey-9384f5399da39e53855beb8e7f8ded1aa56bf72e.zip | |
rename: client -> frontend
Diffstat (limited to 'packages/client/src/components/global/RouterView.vue')
| -rw-r--r-- | packages/client/src/components/global/RouterView.vue | 61 |
1 files changed, 0 insertions, 61 deletions
diff --git a/packages/client/src/components/global/RouterView.vue b/packages/client/src/components/global/RouterView.vue deleted file mode 100644 index e21a57471c..0000000000 --- a/packages/client/src/components/global/RouterView.vue +++ /dev/null @@ -1,61 +0,0 @@ -<template> -<KeepAlive :max="defaultStore.state.numberOfPageCache"> - <Suspense> - <component :is="currentPageComponent" :key="key" v-bind="Object.fromEntries(currentPageProps)"/> - - <template #fallback> - <MkLoading/> - </template> - </Suspense> -</KeepAlive> -</template> - -<script lang="ts" setup> -import { inject, nextTick, onBeforeUnmount, onMounted, onUnmounted, provide, watch } from 'vue'; -import { Resolved, Router } from '@/nirax'; -import { defaultStore } from '@/store'; - -const props = defineProps<{ - router?: Router; -}>(); - -const router = props.router ?? inject('router'); - -if (router == null) { - throw new Error('no router provided'); -} - -const currentDepth = inject('routerCurrentDepth', 0); -provide('routerCurrentDepth', currentDepth + 1); - -function resolveNested(current: Resolved, d = 0): Resolved | null { - if (d === currentDepth) { - return current; - } else { - if (current.child) { - return resolveNested(current.child, d + 1); - } else { - return null; - } - } -} - -const current = resolveNested(router.current)!; -let currentPageComponent = $shallowRef(current.route.component); -let currentPageProps = $ref(current.props); -let key = $ref(current.route.path + JSON.stringify(Object.fromEntries(current.props))); - -function onChange({ resolved, key: newKey }) { - const current = resolveNested(resolved); - if (current == null) return; - currentPageComponent = current.route.component; - currentPageProps = current.props; - key = current.route.path + JSON.stringify(Object.fromEntries(current.props)); -} - -router.addListener('change', onChange); - -onBeforeUnmount(() => { - router.removeListener('change', onChange); -}); -</script> |