fix. 컴포넌트 폴더 구조 변경

This commit is contained in:
clkim
2025-09-16 15:10:33 +09:00
parent 0b413bb197
commit 62e06b30f4
25 changed files with 58 additions and 37 deletions

View File

@@ -21,34 +21,55 @@ repo/
│ ├── assets/ │ ├── assets/
│ │ └── css/ │ │ └── css/
│ ├── components/ │ ├── components/
│ │ ├── atoms/ │ │ ├── atoms/ # 기본 UI 컴포넌트
│ │ ├── layout/ │ │ │ ├── Button.vue
│ │ │ ├── default/ │ │ │ ├── LocaleLink.vue
│ │ │ └── StoveGnb.vue │ │ │ └── icons/
│ │ ├── molecules/ │ │ │ ├── ArrowDown.vue
│ │ └── templates/ │ │ │ ├── LinkOut.vue
│ │ │ └── Star.vue
│ │ ├── blocks/ # 복합 컴포넌트
│ │ │ ├── HybridLink.vue
│ │ │ ├── loading/
│ │ │ ├── modal/
│ │ │ ├── StoveGnb.vue
│ │ │ └── VisualContent.vue
│ │ ├── layouts/ # 레이아웃 컴포넌트
│ │ │ ├── Footer.vue
│ │ │ ├── Header.vue
│ │ │ └── Main.vue
│ │ └── widgets/ # 템플릿용 공통 위젯
│ │ ├── Background.vue
│ │ ├── MainTitle.vue
│ │ ├── SubTitle.vue
│ ├── composables/ │ ├── composables/
│ ├── layouts/ │ ├── layouts/
│ │ ├── default.vue
│ │ └── promotion.vue
│ ├── middleware/ │ ├── middleware/
│ │ ├── init.route.global.ts
│ │ └── pageData.global.ts │ │ └── pageData.global.ts
│ ├── nuxt.config.ts │ ├── nuxt.config.ts
│ ├── plugins/ │ ├── plugins/
│ ├── public/ │ ├── public/
│ │ └── images/
│ ├── registry/ │ ├── registry/
│ │ └── index.ts │ │ └── index.ts
│ ├── server/ │ ├── server/
│ │ ├── api/ │ │ ├── api/
│ │ ── middleware/ │ │ ── middleware/
│ │ └── routes/
│ ├── stores/ │ ├── stores/
│ ├── templates/ │ ├── templates/
│ │ ├── GrVisual01/ │ │ ├── GrVisual01
│ │ ├── GrVisual02/ │ │ ├── GrVisual02
│ │ └── GrVisual03/ │ │ └── GrVisual03
│ ├── types/ │ ├── types/
│ │ ── api/ │ │ ── api/
│ │ └── utils/ │ │ ├── gameData.ts
│ │ └── pageData.ts
│ └── utils/ │ └── utils/
├── i18n/
│ └── locales/
├── node_modules/ ├── node_modules/
├── nuxt.config.ts ├── nuxt.config.ts
├── package.json ├── package.json

View File

@@ -3,15 +3,15 @@
<h1 class="sr-only">dddd</h1> <h1 class="sr-only">dddd</h1>
<NuxtPage /> <NuxtPage />
<MoleculesLoadingFull /> <LoadingFull />
<MoleculesLoadingLocal /> <LoadingLocal />
</NuxtLayout> </NuxtLayout>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { useNuxtApp } from 'nuxt/app' import { useNuxtApp } from 'nuxt/app'
import MoleculesLoadingFull from '#layers/components/molecules/loading/Full.vue' import LoadingFull from '#layers/components/blocks/loading/Full.vue'
import MoleculesLoadingLocal from '#layers/components/molecules/loading/Local.vue' import LoadingLocal from '#layers/components/blocks/loading/Local.vue'
import { useGameDataStore } from '#layers/stores/useGameDataStore' import { useGameDataStore } from '#layers/stores/useGameDataStore'
import type { GameDataMetaTag, GameDataValue } from '#layers/types/api/gameData' import type { GameDataMetaTag, GameDataValue } from '#layers/types/api/gameData'

View File

@@ -33,7 +33,7 @@ watchEffect(() => {
<template> <template>
<NuxtLayout :name="layout"> <NuxtLayout :name="layout">
<ClientOnly> <ClientOnly>
<BlocksMain :templates="pageData?.templates ?? []" /> <LayoutsMain :templates="pageData?.templates ?? []" />
</ClientOnly> </ClientOnly>
</NuxtLayout> </NuxtLayout>
</template> </template>

View File

@@ -33,7 +33,7 @@ watchEffect(() => {
<template> <template>
<NuxtLayout :name="layout"> <NuxtLayout :name="layout">
<ClientOnly> <ClientOnly>
<BlocksMain :templates="pageData?.templates ?? []" /> <LayoutsMain :templates="pageData?.templates ?? []" />
</ClientOnly> </ClientOnly>
</NuxtLayout> </NuxtLayout>
</template> </template>

View File

@@ -33,7 +33,7 @@ watchEffect(() => {
<template> <template>
<NuxtLayout :name="layout"> <NuxtLayout :name="layout">
<ClientOnly> <ClientOnly>
<BlocksMain :templates="pageData?.templates ?? []" /> <LayoutsMain :templates="pageData?.templates ?? []" />
</ClientOnly> </ClientOnly>
</NuxtLayout> </NuxtLayout>
</template> </template>

View File

@@ -42,7 +42,7 @@ watchEffect(() => {
<template> <template>
<NuxtLayout :name="layout"> <NuxtLayout :name="layout">
<ClientOnly> <ClientOnly>
<BlocksMain :templates="pageData?.templates ?? []" /> <LayoutsMain :templates="pageData?.templates ?? []" />
</ClientOnly> </ClientOnly>
</NuxtLayout> </NuxtLayout>
</template> </template>

View File

@@ -114,7 +114,7 @@
<script setup lang="ts"> <script setup lang="ts">
import { useI18n } from 'vue-i18n' import { useI18n } from 'vue-i18n'
import { useGameDataStore } from '#layers/stores/useGameDataStore' import { useGameDataStore } from '#layers/stores/useGameDataStore'
import LanguageSwitcher from '#layers/components/molecules/LanguageSwitcher.vue' import LanguageSwitcher from '#layers/components/blocks/LanguageSwitcher.vue'
const { t, locale } = useI18n() const { t, locale } = useI18n()
const gameDataStore = useGameDataStore() const gameDataStore = useGameDataStore()

View File

@@ -150,7 +150,7 @@
<div <div
class="language-area absolute bottom-7 right-10 text-white md:bottom-5.5 md:right-4" class="language-area absolute bottom-7 right-10 text-white md:bottom-5.5 md:right-4"
> >
<MoleculesLanguageSwitcher /> <BlocksLanguageSwitcher />
<!-- <SelectLanguage /> --> <!-- <SelectLanguage /> -->
<!-- <AtomsLanguageSwitcher /> --> <!-- <AtomsLanguageSwitcher /> -->

View File

@@ -12,7 +12,7 @@ const gnbList = gameData?.gnb?.menus as GameDataGnb['menus']
<header <header
class="bg-theme-foreground text-theme-foreground-reversal relative z-50" class="bg-theme-foreground text-theme-foreground-reversal relative z-50"
> >
<MoleculesStoveGnb /> <BlocksStoveGnb />
<div <div
data-name="header-game" data-name="header-game"
class="px-[40px] h-16 flex items-center whitespace-nowrap" class="px-[40px] h-16 flex items-center whitespace-nowrap"
@@ -37,7 +37,7 @@ const gnbList = gameData?.gnb?.menus as GameDataGnb['menus']
class="relative group" class="relative group"
> >
<!-- Link 컴포넌트 사용 --> <!-- Link 컴포넌트 사용 -->
<MoleculesHybridLink <BlocksHybridLink
:to="gnbItem.url_path" :to="gnbItem.url_path"
:target="gnbItem.link_target" :target="gnbItem.link_target"
class="relative flex items-center h-[64px]" class="relative flex items-center h-[64px]"
@@ -47,7 +47,7 @@ const gnbList = gameData?.gnb?.menus as GameDataGnb['menus']
<span <span
class="absolute bottom-0 left-0 w-full h-2 border-b-2 border-transparent transition-border-color group-hover:border-theme-foreground-reversal group-active:border-theme-foreground-reversal-10" class="absolute bottom-0 left-0 w-full h-2 border-b-2 border-transparent transition-border-color group-hover:border-theme-foreground-reversal group-active:border-theme-foreground-reversal-10"
/> />
</MoleculesHybridLink> </BlocksHybridLink>
<div <div
v-if="gnbItem.children" v-if="gnbItem.children"
class="absolute top-full left-[-28px] min-w-[190px] pt-[4px] pointer-events-none group-hover:pointer-events-auto" class="absolute top-full left-[-28px] min-w-[190px] pt-[4px] pointer-events-none group-hover:pointer-events-auto"
@@ -57,7 +57,7 @@ const gnbList = gameData?.gnb?.menus as GameDataGnb['menus']
> >
<li v-for="child in gnbItem.children" :key="child.menu_name"> <li v-for="child in gnbItem.children" :key="child.menu_name">
<!-- Link 컴포넌트 사용 --> <!-- Link 컴포넌트 사용 -->
<MoleculesHybridLink <BlocksHybridLink
:to="child.url_path" :to="child.url_path"
:target="child.link_target" :target="child.link_target"
class="flex items-center px-4 py-[9px] rounded-[12px] transition-background hover:bg-theme-foreground-reversal-40 active:bg-theme-foreground-reversal-70" class="flex items-center px-4 py-[9px] rounded-[12px] transition-background hover:bg-theme-foreground-reversal-40 active:bg-theme-foreground-reversal-70"
@@ -67,7 +67,7 @@ const gnbList = gameData?.gnb?.menus as GameDataGnb['menus']
v-if="child.link_target === '_blank'" v-if="child.link_target === '_blank'"
class="ml-1" class="ml-1"
/> />
</MoleculesHybridLink> </BlocksHybridLink>
</li> </li>
</ul> </ul>
</div> </div>

View File

@@ -19,7 +19,7 @@ const imageSrc = getResponsiveSrc(resourcesData.value?.res_path)
</script> </script>
<template> <template>
<MoleculesVisualContent <BlocksVisualContent
tag="p" tag="p"
:text="displayText" :text="displayText"
:image-src="imageSrc as any" :image-src="imageSrc as any"

View File

@@ -19,7 +19,7 @@ const imageSrc = getResponsiveSrc(resourcesData.value?.res_path)
</script> </script>
<template> <template>
<MoleculesVisualContent <BlocksVisualContent
tag="h2" tag="h2"
:text="displayText" :text="displayText"
:image-src="imageSrc as any" :image-src="imageSrc as any"

View File

@@ -19,7 +19,7 @@ const imageSrc = getResponsiveSrc(resourcesData.value?.res_path)
</script> </script>
<template> <template>
<MoleculesVisualContent <BlocksVisualContent
tag="h3" tag="h3"
:text="displayText" :text="displayText"
:image-src="imageSrc as any" :image-src="imageSrc as any"

View File

@@ -2,8 +2,8 @@
<template> <template>
<div> <div>
<BlocksDefaultHeader /> <LayoutsHeader />
<slot /> <slot />
<BlocksDefaultFooter /> <LayoutsFooter />
</div> </div>
</template> </template>

View File

@@ -1,6 +1,6 @@
import GrVisual01 from '#layers/components/templates/GrVisual01/index.vue' import GrVisual01 from '#layers/templates/GrVisual01/index.vue'
import GrVisual02 from '#layers/components/templates/GrVisual02/index.vue' import GrVisual02 from '#layers/templates/GrVisual02/index.vue'
import GrVisual03 from '#layers/components/templates/GrVisual03/index.vue' import GrVisual03 from '#layers/templates/GrVisual03/index.vue'
// import GrGallery01 from "#layers/templates/GrGallery01/index.vue"; // import GrGallery01 from "#layers/templates/GrGallery01/index.vue";
// import GrGallery02 from "#layers/templates/GrGallery02/index.vue"; // import GrGallery02 from "#layers/templates/GrGallery02/index.vue";
// import GrGallery03 from "#layers/templates/GrGallery03/index.vue"; // import GrGallery03 from "#layers/templates/GrGallery03/index.vue";

View File

@@ -1,5 +1,5 @@
<script setup lang="ts"> <script setup lang="ts">
import YouTubeModal from '#layers/components/molecules/modal/YouTubeModal.vue' import YouTubeModal from '#layers/components/blocks/modal/YouTube.vue'
interface Props { interface Props {
components: Record<string, any> components: Record<string, any>