Files
web-temp/app/app.vue
2025-09-09 04:09:54 +00:00

59 lines
1.3 KiB
Vue

<template>
<NuxtLayout>
<h1 class="sr-only">dddd</h1>
<NuxtPage />
<MoleculesLoadingFull />
<MoleculesLoadingLocal />
</NuxtLayout>
</template>
<script setup lang="ts">
import { useNuxtApp } from "nuxt/app";
import { useGameDataStore } from "#layers/stores/useGameDataStore";
import type {
gameData,
GameDataMetaTag,
GameDataValue,
} from "#layers/types/api/gameData";
const nuxtApp = useNuxtApp();
const getGameData = ref<GameDataValue | null>(null);
const metaData = ref<GameDataMetaTag | null>(null);
const { setGameData } = useGameDataStore();
// SSR에서만 접근 가능
const gameDataFromServer = import.meta.server
? nuxtApp.ssrContext?.event.context.gameData
: null;
if (gameDataFromServer) {
getGameData.value = gameDataFromServer;
setGameData(gameDataFromServer);
}
const meta = gameDataFromServer?.meta_tag || null;
if (meta) {
metaData.value = meta;
useSeoMeta({
title: meta.page_title,
description: meta.page_desc,
ogTitle: meta.og_title,
ogImage: meta.og_image,
ogDescription: meta.og_desc,
ogUrl: meta.og_url,
twitterImage: meta.x_image,
twitterTitle: meta.x_title,
twitterDescription: meta.x_desc,
});
useHead({
// htmlAttrs: {
// lang: locale.value
// },
//meta: [...(updatedMetaTags.value || [])],
//link: [...(links.value || [])]
});
}
</script>