Files
web-temp/app/pages/index.vue
2025-09-16 15:10:33 +09:00

49 lines
1.5 KiB
Vue

<script setup lang="ts">
import { storeToRefs } from 'pinia'
import { usePageDataStore } from '#layers/stores/usePageDataStore'
const pageDataStore = usePageDataStore()
const { pageData } = storeToRefs(pageDataStore)
// 동적 i18n 라우트 설정
// const { getI18nRouteConfig } = useDynamicI18nRoutes();
// const layout = pageData.value?.meta?.layout ?? "default";
const layout = 'default' // 기본 레이아웃 사용
// definePageMeta를 사용하여 레이아웃을 미리 설정
definePageMeta({
layout: false, // 기본 레이아웃 비활성화
})
// // gameData.lang_codes를 기반으로 동적 언어 제외 설정
// const i18nRouteConfig = getI18nRouteConfig();
// if (i18nRouteConfig) {
// defineI18nRoute(i18nRouteConfig);
// }
// SEO 메타 태그 설정 - pageData가 로드된 후에만 실행
watchEffect(() => {
if (pageData.value?.meta_tag) {
useSeoMeta({
title: pageData.value.meta_tag.page_title ?? '',
description: pageData.value.meta_tag.page_desc ?? '',
ogTitle: pageData.value.meta_tag.og_title ?? '',
ogDescription: pageData.value.meta_tag.og_desc ?? '',
ogImage: pageData.value.meta_tag.og_image ?? '',
twitterTitle: pageData.value.meta_tag.x_title ?? '',
twitterImage: pageData.value.meta_tag.x_image ?? '',
twitterDescription: pageData.value.meta_tag.x_desc ?? '',
})
}
})
</script>
<template>
<NuxtLayout :name="layout">
<ClientOnly>
<LayoutsMain :templates="pageData?.templates ?? []" />
</ClientOnly>
</NuxtLayout>
</template>