diff --git a/app/app.vue b/app/app.vue index 37b0eab..b74de48 100644 --- a/app/app.vue +++ b/app/app.vue @@ -57,6 +57,7 @@ const createStyleLinks = (faviconJson: GameDataImg, fontPath: string = '') => { // 메타 태그 생성 헬퍼 const createMetaTags = (metaTag: Partial = {}) => { + if (!metaTag) return [] const metaList = [ { name: 'description', content: metaTag.page_desc }, { property: 'og:title', content: metaTag.og_title }, @@ -92,7 +93,7 @@ const createStyleCss = (keyColorJson: GameDataKeyColors) => { // 게임 헤드 설정 const setupGameHead = (data: GameDataValue) => { try { - const metaTag: Partial = data.meta_tag_json ?? {} + const metaTag: Partial = data?.meta_tag_json ?? {} const designTheme = data.design_theme === 1 ? 'light' : 'dark' const styleLinks = createStyleLinks( data.favicon_json, diff --git a/app/pages/inspection/index.vue b/app/pages/inspection/index.vue index 86d570b..e809eba 100644 --- a/app/pages/inspection/index.vue +++ b/app/pages/inspection/index.vue @@ -207,7 +207,7 @@ const enabledMarkets = computed(() => { const logoImgUrl = computed(() => { const currentLocale = locale.value || 'ko' const localeData = (webInspectionData.value as any)?.[currentLocale] - return formatPathHost(localeData?.img_json.bi_large) + return formatPathHost(localeData?.img_json?.bi_large) }) const communityUrl = computed(() => { diff --git a/layers/types/api/gameData.ts b/layers/types/api/gameData.ts index 8ff99f1..7cc2572 100644 --- a/layers/types/api/gameData.ts +++ b/layers/types/api/gameData.ts @@ -32,7 +32,7 @@ export interface GameDataValue { comm_sns_bg_color_json: { display: ColorObject } - comm_multilang_filename: string + comm_multilang_filename?: string footer_dev_ci_img_yn: boolean footer_dev_ci_img_path: string default_lang_code?: string @@ -43,13 +43,13 @@ export interface GameDataValue { inspection: Record stove_gnb_json: GameDataStoveGnb favicon_json: GameDataImg - meta_tag_json: GameDataMetaTag - sns_json: GameDataSns - url_json: Record + meta_tag_json?: GameDataMetaTag + sns_json?: GameDataSns + url_json?: Record footer_json: string // JSON 문자열로 변경 - img_json: GameDataImg + img_json?: GameDataImg market_json: Record - event_banner: GameDataEventBanner + event_banner?: GameDataEventBanner os_type: OsType platform_type: PlatformType } diff --git a/layers/types/api/operateResources.ts b/layers/types/api/operateResources.ts index 20e5f17..b161c70 100644 --- a/layers/types/api/operateResources.ts +++ b/layers/types/api/operateResources.ts @@ -33,8 +33,8 @@ export interface OperateResourcesResponse { } export interface getOperateResourcesParams { - pageSeq: string - pageVer: string + pageSeq: number + pageVer: number pageVerTmplSeq: number langCode: string q?: string diff --git a/layers/types/api/pageData.ts b/layers/types/api/pageData.ts index bd7f82b..fff3406 100644 --- a/layers/types/api/pageData.ts +++ b/layers/types/api/pageData.ts @@ -25,20 +25,19 @@ export interface PageDataResponse { // API 응답의 value 객체 타입 export interface PageDataValue { - page_seq: string + page_seq: number page_type: number page_name: string page_name_en: string - page_ver: string + page_ver: number is_login_required: number meta_tag_type: number - fit_page_height: boolean use_top_btn: boolean use_sns_btn: boolean use_lnb: boolean - lnb_text_color_code_active: string - lnb_text_color_code_deactive: string - lnb_menus: Record + lnb_text_color_code_active?: string + lnb_text_color_code_deactive?: string + lnb_menus?: Record meta_tag_json: PageDataMetaTag templates: Record } diff --git a/layers/utils/localeUtil.ts b/layers/utils/localeUtil.ts index 20b9ec1..cfd3f0d 100644 --- a/layers/utils/localeUtil.ts +++ b/layers/utils/localeUtil.ts @@ -158,7 +158,7 @@ export const ssrGetFinalLocale = ( } } - // 3. 서비스 기본 언어 + // 4. 서비스 기본 언어 finalLocale = defaultLocale } catch (e) { finalLocale = defaultLocale