diff options
| author | syuilo <Syuilotan@yahoo.co.jp> | 2022-06-20 17:38:49 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-06-20 17:38:49 +0900 |
| commit | 699f24f3dcdb156838eb70602885c0b2cdd02cbc (patch) | |
| tree | 45b28eeadbb7d9e7f3847bd04f75ed010153619a /packages/client/src/ui/deck | |
| parent | refactor: チャットルームをComposition API化 (#8850) (diff) | |
| download | misskey-699f24f3dcdb156838eb70602885c0b2cdd02cbc.tar.gz misskey-699f24f3dcdb156838eb70602885c0b2cdd02cbc.tar.bz2 misskey-699f24f3dcdb156838eb70602885c0b2cdd02cbc.zip | |
refactor(client): Refine routing (#8846)
Diffstat (limited to 'packages/client/src/ui/deck')
| -rw-r--r-- | packages/client/src/ui/deck/main-column.vue | 40 |
1 files changed, 15 insertions, 25 deletions
diff --git a/packages/client/src/ui/deck/main-column.vue b/packages/client/src/ui/deck/main-column.vue index 3c97cd4867..670b4a212b 100644 --- a/packages/client/src/ui/deck/main-column.vue +++ b/packages/client/src/ui/deck/main-column.vue @@ -1,33 +1,24 @@ <template> -<XColumn v-if="deckStore.state.alwaysShowMainColumn || $route.name !== 'index'" :column="column" :is-stacked="isStacked" @parent-focus="$event => emit('parent-focus', $event)"> +<XColumn v-if="deckStore.state.alwaysShowMainColumn || mainRouter.currentRoute.value.name !== 'index'" :column="column" :is-stacked="isStacked" @parent-focus="$event => emit('parent-focus', $event)"> <template #header> - <template v-if="pageInfo"> - <i :class="pageInfo.icon"></i> - {{ pageInfo.title }} + <template v-if="pageMetadata?.value"> + <i :class="pageMetadata?.value.icon"></i> + {{ pageMetadata?.value.title }} </template> </template> - <MkStickyContainer> - <template #header><MkHeader v-if="pageInfo && !pageInfo.hideHeader" :info="pageInfo"/></template> - <router-view v-slot="{ Component }"> - <transition> - <keep-alive :include="['MkTimelinePage']"> - <component :is="Component" :ref="changePage" @contextmenu.stop="onContextmenu"/> - </keep-alive> - </transition> - </router-view> - </MkStickyContainer> + <RouterView @contextmenu.stop="onContextmenu"/> </XColumn> </template> <script lang="ts" setup> -import { } from 'vue'; +import { ComputedRef, provide } from 'vue'; import XColumn from './column.vue'; import { deckStore, Column } from '@/ui/deck/deck-store'; import * as os from '@/os'; -import * as symbols from '@/symbols'; import { i18n } from '@/i18n'; -import { router } from '@/router'; +import { mainRouter } from '@/router'; +import { PageMetadata, provideMetadataReceiver, setPageMetadata } from '@/scripts/page-metadata'; defineProps<{ column: Column; @@ -38,14 +29,13 @@ const emit = defineEmits<{ (ev: 'parent-focus', direction: 'up' | 'down' | 'left' | 'right'): void; }>(); -let pageInfo = $ref<Record<string, any> | null>(null); +let pageMetadata = $ref<null | ComputedRef<PageMetadata>>(); + +provide('router', mainRouter); +provideMetadataReceiver((info) => { + pageMetadata = info; +}); -function changePage(page) { - if (page == null) return; - if (page[symbols.PAGE_INFO]) { - pageInfo = page[symbols.PAGE_INFO]; - } -} /* function back() { history.back(); @@ -72,7 +62,7 @@ function onContextmenu(ev: MouseEvent) { text: i18n.ts.openInWindow, action: () => { os.pageWindow(path); - } + }, }], ev); } </script> |