fix. main 컴포넌트 변경, 수정된 api 구조에 맞춰 코드 수정

This commit is contained in:
clkim
2025-09-17 18:03:19 +09:00
parent 2196cf4200
commit 61022fb972
14 changed files with 347 additions and 664 deletions

View File

@@ -1,37 +1,25 @@
<script setup lang="ts">
import { storeToRefs } from 'pinia'
import { usePageDataStore } from '#layers/stores/usePageDataStore'
import type { PageDataValue } from '#layers/types/api/pageData'
const pageDataStore = usePageDataStore()
const { pageData } = storeToRefs(pageDataStore)
// const layout = pageData.value?.meta?.layout ?? "default";
const layout = 'default' // 기본 레이아웃 사용
const getLayoutType = (
pageData: PageDataValue | null
): 'default' | 'promotion' => {
return pageData?.page_type === 1 ? 'default' : 'promotion'
}
const currentLayout = computed(() => getLayoutType(pageData.value))
// definePageMeta를 사용하여 레이아웃을 미리 설정
definePageMeta({
layout: false, // 기본 레이아웃 비활성화
})
// definePageMeta를 사용하여 레이아웃을 미리 설정
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 ?? '',
})
}
layout: false, // 동적 레이아웃을 위해 기본 레이아웃 비활성화
})
</script>
<template>
<NuxtLayout :name="layout">
<LayoutsMain :templates="pageData?.templates ?? []" />
<NuxtLayout :name="currentLayout">
<LayoutsMain v-if="pageData" :page-data="pageData" />
</NuxtLayout>
</template>

View File

@@ -1,37 +1,25 @@
<script setup lang="ts">
import { storeToRefs } from 'pinia'
import { usePageDataStore } from '#layers/stores/usePageDataStore'
import type { PageDataValue } from '#layers/types/api/pageData'
const pageDataStore = usePageDataStore()
const { pageData } = storeToRefs(pageDataStore)
// const layout = pageData.value?.meta?.layout ?? "default";
const layout = 'default' // 기본 레이아웃 사용
const getLayoutType = (
pageData: PageDataValue | null
): 'default' | 'promotion' => {
return pageData?.page_type === 1 ? 'default' : 'promotion'
}
const currentLayout = computed(() => getLayoutType(pageData.value))
// definePageMeta를 사용하여 레이아웃을 미리 설정
definePageMeta({
layout: false, // 기본 레이아웃 비활성화
})
// definePageMeta를 사용하여 레이아웃을 미리 설정
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 ?? '',
})
}
layout: false, // 동적 레이아웃을 위해 기본 레이아웃 비활성화
})
</script>
<template>
<NuxtLayout :name="layout">
<LayoutsMain :templates="pageData?.templates ?? []" />
<NuxtLayout :name="currentLayout">
<LayoutsMain v-if="pageData" :page-data="pageData" />
</NuxtLayout>
</template>