@@ -16,9 +16,9 @@ SPDX-License-Identifier: AGPL-3.0-only
16
16
@closed="$emit('closed')"
17
17
>
18
18
<template #header>
19
- <template v-if="pageMetadata?.value ">
20
- <i v-if="pageMetadata.value. icon" :class="pageMetadata.value .icon" style="margin-right: 0.5em;"></i>
21
- <span>{{ pageMetadata.value. title }}</span>
19
+ <template v-if="pageMetadata">
20
+ <i v-if="pageMetadata.icon" :class="pageMetadata.icon" style="margin-right: 0.5em;"></i>
21
+ <span>{{ pageMetadata.title }}</span>
22
22
</template>
23
23
</template>
24
24
@@ -29,15 +29,15 @@ SPDX-License-Identifier: AGPL-3.0-only
29
29
</template>
30
30
31
31
<script lang="ts" setup>
32
- import { computed, ComputedRef, onMounted, onUnmounted, provide, ref, shallowRef } from 'vue';
32
+ import { computed, onMounted, onUnmounted, provide, ref, shallowRef } from 'vue';
33
33
import RouterView from '@/components/global/RouterView.vue';
34
34
import MkWindow from '@/components/MkWindow.vue';
35
35
import { popout as _popout } from '@/scripts/popout.js';
36
36
import copyToClipboard from '@/scripts/copy-to-clipboard.js';
37
37
import { url } from '@/config.js';
38
38
import { useScrollPositionManager } from '@/nirax.js';
39
39
import { i18n } from '@/i18n.js';
40
- import { PageMetadata, provideMetadataReceiver } from '@/scripts/page-metadata.js';
40
+ import { PageMetadata, provideMetadataReceiver, provideReactiveMetadata } from '@/scripts/page-metadata.js';
41
41
import { openingWindowsCount } from '@/os.js';
42
42
import { claimAchievement } from '@/scripts/achievements.js';
43
43
import { getScrollContainer } from '@/scripts/scroll.js';
@@ -56,7 +56,7 @@ const routerFactory = useRouterFactory();
56
56
const windowRouter = routerFactory(props.initialPath);
57
57
58
58
const contents = shallowRef<HTMLElement | null>(null);
59
- const pageMetadata = ref<null | ComputedRef< PageMetadata>>( );
59
+ const pageMetadata = ref<null | PageMetadata>(null );
60
60
const windowEl = shallowRef<InstanceType<typeof MkWindow>>();
61
61
const history = ref<{ path: string; key: any; }[]>([{
62
62
path: windowRouter.getCurrentPath(),
@@ -101,9 +101,11 @@ windowRouter.addListener('replace', ctx => {
101
101
windowRouter.init();
102
102
103
103
provide('router', windowRouter);
104
- provideMetadataReceiver((info) => {
104
+ provideMetadataReceiver((metadataGetter) => {
105
+ const info = metadataGetter();
105
106
pageMetadata.value = info;
106
107
});
108
+ provideReactiveMetadata(pageMetadata);
107
109
provide('shouldOmitHeaderTitle', true);
108
110
provide('shouldHeaderThin', true);
109
111
provide('forceSpacerMin', true);
0 commit comments