diff --git a/app/app.vue b/app/app.vue
index a0578f1..18f86a5 100644
--- a/app/app.vue
+++ b/app/app.vue
@@ -80,7 +80,7 @@ const createMetaTags = (metaTag: Partial = {}) => {
}
// CSS 변수 생성 헬퍼
-const createCssVariable = (keyColorJson: GameDataKeyColors) => {
+const createStyleCss = (keyColorJson: GameDataKeyColors) => {
const colorVariables = Object.entries(keyColorJson)
.filter(([key, value]) => key && value != null)
.map(([key, value]) => `--${key}: ${value};`)
@@ -95,9 +95,10 @@ const setupGameHead = (data: GameDataValue) => {
const metaTag: Partial = data.meta_tag_json ?? {}
const designTheme = data.design_theme === 1 ? 'light' : 'dark'
const styleLinks = createStyleLinks(
- data.favicon_json
- // data?.game_font?.font_path
+ data.favicon_json,
+ data?.game_font?.font_path
)
+ const styleCss = createStyleCss(data.key_color_json)
useHead({
title: metaTag.page_title ?? '',
@@ -110,7 +111,7 @@ const setupGameHead = (data: GameDataValue) => {
link: styleLinks,
style: [
{
- innerHTML: createCssVariable(data.key_color_json),
+ innerHTML: styleCss,
id: 'game-css-variables',
},
],
diff --git a/app/pages/inspection/index.vue b/app/pages/inspection/index.vue
index 4c55e25..86d570b 100644
--- a/app/pages/inspection/index.vue
+++ b/app/pages/inspection/index.vue
@@ -56,80 +56,24 @@
>
@@ -137,7 +81,6 @@
{{
@@ -147,18 +90,23 @@
}}
-
- {{ getButtonText(btn.platform) }}
-
+
+ {{ getButtonText(market) }}
+
+
@@ -170,6 +118,8 @@
-
diff --git a/layers/components/blocks/slide/Arrows.vue b/layers/components/blocks/Button/SlideArrows.vue
similarity index 100%
rename from layers/components/blocks/slide/Arrows.vue
rename to layers/components/blocks/Button/SlideArrows.vue
diff --git a/layers/components/blocks/DatePicker.vue b/layers/components/blocks/DatePicker.vue
index d68dc50..28de42d 100644
--- a/layers/components/blocks/DatePicker.vue
+++ b/layers/components/blocks/DatePicker.vue
@@ -365,7 +365,7 @@ onMounted(() => {
>
{
>
- emit('confirmButtonEvent'))"
>
{{ props.confirmButtonText || tm('Text_Confirm') }}
-
+
diff --git a/layers/components/blocks/modal/Confirm.vue b/layers/components/blocks/modal/Confirm.vue
index 2438d77..6088e7d 100644
--- a/layers/components/blocks/modal/Confirm.vue
+++ b/layers/components/blocks/modal/Confirm.vue
@@ -42,17 +42,17 @@ const handleOutsideClick = () => {
>
-
emit('cancelButtonEvent'))"
>
{{ props.cancelButtonText || tm('Text_Cancel') }}
-
-
+ emit('confirmButtonEvent'))"
>
{{ props.confirmButtonText || tm('Text_Confirm') }}
-
+
diff --git a/layers/components/layouts/Header.vue b/layers/components/layouts/Header.vue
index afa1d77..5ff43a4 100644
--- a/layers/components/layouts/Header.vue
+++ b/layers/components/layouts/Header.vue
@@ -374,7 +374,6 @@ onMounted(() => {
@@ -573,25 +573,28 @@ onMounted(() => {
.btn-start:hover .nav-2depth {
@apply md:block;
}
-.btn-start:deep(> .btn-base) {
+.btn-start:deep(.btn-base[data-variant='filled']) {
@apply w-full h-[48px] px-10 font-[700] text-[16px];
}
-.btn-start:deep(> .btn-base) .icon-platform {
+.btn-start:deep(.btn-base[data-variant='filled']) svg {
@apply hidden;
}
-.btn-start:deep(> .btn-base) .btn-content {
- @apply justify-center;
-}
.btn-start .nav-2depth {
@apply left-[unset] right-[-40px];
}
.btn-start .nav-2depth:deep(.btn-base) {
- @apply w-full h-[48px] px-4 bg-transparent before:hidden after:hidden
+ @apply w-full h-[48px] px-4
hover:bg-theme-foreground-reversal-4 active:bg-theme-foreground-reversal-10;
}
+.btn-start .nav-2depth:deep(.btn-base) .btn-content {
+ @apply justify-start;
+}
.btn-start .nav-2depth:deep(.btn-base) .text {
- @apply ml-1.5 text-[15px] text-theme-foreground-reversal;
+ @apply pl-1.5 text-[15px] text-theme-foreground-reversal;
+}
+.btn-start:deep(.nav-2depth .icon-download) {
+ @apply hidden;
}
[data-theme='light'] {
diff --git a/layers/components/widgets/ButtonList.vue b/layers/components/widgets/ButtonList.vue
index 1f01961..faf9e51 100644
--- a/layers/components/widgets/ButtonList.vue
+++ b/layers/components/widgets/ButtonList.vue
@@ -7,9 +7,12 @@ import type { ButtonType } from '#layers/types/components/button'
interface Props {
resourcesData: PageDataResourceGroup[]
+ buttonSize?: string
}
-const props = defineProps()
+const props = withDefaults(defineProps(), {
+ buttonSize: 'size-extra-small md:size-medium',
+})
const { locale, tm } = useI18n()
const device = useDevice()
@@ -119,7 +122,7 @@ const handleButtonClick = (button: PageDataResourceGroup) => {
@@ -138,6 +141,7 @@ const handleButtonClick = (button: PageDataResourceGroup) => {
-
+
{{ tm('Text_Download') }}
-
+
diff --git a/layers/components/widgets/slide/CenterFocus.vue b/layers/components/widgets/slide/CenterFocus.vue
index 9ffa7a8..a49d42a 100644
--- a/layers/components/widgets/slide/CenterFocus.vue
+++ b/layers/components/widgets/slide/CenterFocus.vue
@@ -115,7 +115,10 @@ const handleMove = (
-
+
diff --git a/layers/components/widgets/slide/CenterHighlight.vue b/layers/components/widgets/slide/CenterHighlight.vue
index e66efff..fcde0d8 100644
--- a/layers/components/widgets/slide/CenterHighlight.vue
+++ b/layers/components/widgets/slide/CenterHighlight.vue
@@ -118,7 +118,10 @@ const handleMove = (
-
+
diff --git a/layers/components/widgets/slide/Default.vue b/layers/components/widgets/slide/Default.vue
index 44c89ad..b2fc11e 100644
--- a/layers/components/widgets/slide/Default.vue
+++ b/layers/components/widgets/slide/Default.vue
@@ -98,6 +98,9 @@ const handleMove = (
-
+
diff --git a/layers/components/widgets/slide/Fade.vue b/layers/components/widgets/slide/Fade.vue
index e35cfd2..4dc4136 100644
--- a/layers/components/widgets/slide/Fade.vue
+++ b/layers/components/widgets/slide/Fade.vue
@@ -92,7 +92,7 @@ defineExpose({
- {
/>
-
+
diff --git a/layers/middleware/init.route.global.ts b/layers/middleware/init.route.global.ts
index 31887c2..d79e98e 100644
--- a/layers/middleware/init.route.global.ts
+++ b/layers/middleware/init.route.global.ts
@@ -6,7 +6,7 @@ export default defineNuxtRouteMiddleware(to => {
if (to.path.includes('/error')) return
// inspection 페이지는 실행X -----
- if (to.path.includes('inspection')) return
+ if (to.path.includes('/inspection')) return
const gameDataStore = useGameDataStore()
const { langCodes, intro } = storeToRefs(gameDataStore)
diff --git a/layers/middleware/pageData.global.ts b/layers/middleware/pageData.global.ts
index 9fd5fc0..a6e7662 100644
--- a/layers/middleware/pageData.global.ts
+++ b/layers/middleware/pageData.global.ts
@@ -14,7 +14,7 @@ export default defineNuxtRouteMiddleware(async (to, _from) => {
if (to.path.includes('/error')) return
// inspection 페이지는 실행X -----
- if (to.path.includes('inspection')) return
+ if (to.path.includes('/inspection')) return
const gameDataStore = useGameDataStore()
const pageDataStore = usePageDataStore()
diff --git a/layers/server/middleware/gameData.ts b/layers/server/middleware/gameData.ts
index 978901b..a1ac9b2 100644
--- a/layers/server/middleware/gameData.ts
+++ b/layers/server/middleware/gameData.ts
@@ -140,7 +140,6 @@ export default defineEventHandler(async event => {
}
const stoveApiServerBaseUrl = runtimeConfig.public.stoveApiUrlServer
- const baseDomain = runtimeConfig.public.baseDomain
let gameDataResponse: GameDataResponse | null = null
let gameDataLangCodes: string[] | null = null
@@ -182,7 +181,10 @@ export default defineEventHandler(async event => {
// 1-1. 정적 파일 패스
if (isStaticFile(event.path)) return
- // 1-2. 특정 경로 패스 (API, 리소스)
+ // 1-2. /inspection 패스
+ if (fullPath.includes('/inspection')) return
+
+ // 1-3. 특정 경로 패스 (API, 리소스)
if (shouldSkipPath(fullPath)) return
// 캐시 키 생성 (게임 ID 포함하여 충돌 방지)
diff --git a/layers/stores/useGameDataStore.ts b/layers/stores/useGameDataStore.ts
index e2c7a84..72fab36 100644
--- a/layers/stores/useGameDataStore.ts
+++ b/layers/stores/useGameDataStore.ts
@@ -6,15 +6,19 @@ export const useGameDataStore = defineStore('gameData', () => {
gameId: null as GameDataValue['game_id'] | null,
gameCode: null as GameDataValue['game_code'] | null,
gameName: null as GameDataValue['game_name'] | null,
+ stoveGnbJson: null as GameDataValue['stove_gnb_json'] | null,
langCodes: null as GameDataValue['lang_codes'] | null,
defaultLangCode: null as GameDataValue['default_lang_code'] | null,
gaCode: null as GameDataValue['ga_code'] | null,
platformType: null as GameDataValue['platform_type'] | null,
osType: null as GameDataValue['os_type'] | null,
+ theme: null as 'light' | 'dark' | null,
intro: null as GameDataValue['intro'] | null,
imgJson: null as GameDataValue['img_json'] | null,
snsJson: null as GameDataValue['sns_json'] | null,
urlJson: null as GameDataValue['url_json'] | null,
+ marketJson: null as GameDataValue['market_json'] | null,
+ fontFamily: null as GameDataValue['game_font']['font_family'] | null,
gnb: null as GameDataValue['gnb'] | null,
eventBanner: null as GameDataValue['event_banner'] | null,
fontFamily: null as GameDataValue['game_font']['font_family'] | null,
@@ -27,15 +31,19 @@ export const useGameDataStore = defineStore('gameData', () => {
state.gameId = data?.game_id
state.gameCode = data?.game_code
state.gameName = data?.game_name
+ state.stoveGnbJson = data?.stove_gnb_json
state.langCodes = data?.lang_codes
state.defaultLangCode = data?.default_lang_code
state.gaCode = data?.ga_code
state.platformType = data?.platform_type
state.osType = data?.os_type
+ state.theme = data?.design_theme === 1 ? 'light' : 'dark'
state.intro = data?.intro
state.imgJson = data?.img_json
state.snsJson = data?.sns_json
state.urlJson = data?.url_json
+ state.marketJson = data?.market_json
+ state.fontFamily = data?.game_font?.font_family
state.gnb = data?.gnb
state.eventBanner = data?.event_banner
state.fontFamily = data?.game_font?.font_family
diff --git a/layers/templates/FxCoupon01/index.vue b/layers/templates/FxCoupon01/index.vue
index 7acd69e..7d582bf 100644
--- a/layers/templates/FxCoupon01/index.vue
+++ b/layers/templates/FxCoupon01/index.vue
@@ -530,7 +530,7 @@ onMounted(async () => {
/>
{
{
>
{
@@ -797,20 +797,20 @@ onMounted(async () => {
-
{{ tm('Text_Cancel') }}
-
-
+
{{ tm('Text_Confirm') }}
-
+
diff --git a/layers/templates/FxDownload01/index.vue b/layers/templates/FxDownload01/index.vue
index 6ded902..fb75655 100644
--- a/layers/templates/FxDownload01/index.vue
+++ b/layers/templates/FxDownload01/index.vue
@@ -228,7 +228,7 @@ const handleMoveFocus = (target: 'pc' | 'mobile') => {
{
: true
"
:platform="`${os.platformCode as Platform}`"
- class="!w-full"
+ class="w-full"
@click="handleSendLog(formatSnakeToTitle(os.platformCode))"
>
{{ os.platformText }}
@@ -384,7 +384,7 @@ const handleMoveFocus = (target: 'pc' | 'mobile') => {
{
{
{
{
]"
/>
{
class="w-full h-full object-cover group-hover:scale-110 transition-transform duration-300"
/>
@@ -273,7 +275,7 @@ const handleLoadMoreRecent = () => {