From 619b5f21216355de6c522bf20a384d9fd1812e5c Mon Sep 17 00:00:00 2001 From: jangheon Pyo Date: Thu, 18 Apr 2024 19:51:52 +0900 Subject: [PATCH] =?UTF-8?q?[deeplink]=20=EB=94=A5=EB=A7=81=ED=81=AC=20?= =?UTF-8?q?=EC=9E=91=EC=97=85=20=EC=9D=BC=EB=B6=80=20=EC=B6=94=EA=B0=80=20?= =?UTF-8?q?=EB=B0=8F=20=EA=B3=B5=EC=9C=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/App/deepLinkHandler.js | 188 ++++++++++++++++-- .../src/utils/helperMethods.js | 16 +- 2 files changed, 187 insertions(+), 17 deletions(-) diff --git a/com.twin.app.shoptime/src/App/deepLinkHandler.js b/com.twin.app.shoptime/src/App/deepLinkHandler.js index ca046590..87603850 100644 --- a/com.twin.app.shoptime/src/App/deepLinkHandler.js +++ b/com.twin.app.shoptime/src/App/deepLinkHandler.js @@ -4,43 +4,199 @@ import { panel_names } from "../utils/Config"; //V2_진입경로코드_진입경로명_MT_노출순번 export const handleDeepLink = (contentTarget) => (dispatch, getState) => { const tokens = contentTarget.split("_"); - if (tokens[0] === "V2") { + if (tokens[0] === "V3") { const linkTpCd = tokens[1]; // 진입경로코드 - const linkTpName = tokens[1]; // 진입경로명 + const linkTpName = tokens[2]; // 진입경로명 const type = tokens[3]; // 링크 타입. + let patnrId; // 파트너아이디 + let prdtId; // 상품아이디 + let curationId; // 큐레이션아이디 + let showId; // 방송아이디 + let exposureOrder; // 노출순번 + let grNumber; // 그룹번호 + let evntId; // 이벤트아이디 + let lgCatCd; // LG카테고리Code + let lgCatNm; // 서브카테고리명 + let tabType; // 카테고리 탭명 + let panelName = ""; let panelInfo = {}; switch (type) { - case "LS": + case "MT": + // "MT": Main TOP + // V3_진입경로코드_진입경로명_MT_노출순번 + panelName = panel_names.HOME_PANEL; break; case "PD": + // "PD": Product Detail + // V3_진입경로코드_진입경로명_PD_파트너아이디_상품아이디_노출순번_큐레이션아이디 + patnrId = tokens[4]; // 파트너아이디 + prdtId = tokens[5]; // 상품아이디 + exposureOrder = tokens[6]; // 노출순번 + curationId = tokens[7]; // 큐레이션아이디 + panelName = panel_names.DETAIL_PANEL; + panelInfo = { + patnrId: patnrId, + prdtId: prdtId, + curationId: curationId, + // exposureOrder: exposureOrder, + }; break; - case "SD": + case "LS": + // "LS": Live Show + // V3_진입경로코드_진입경로명_LS_파트너아이디_방송아이디_노출순번_큐레이션아이디 + patnrId = tokens[4]; // 파트너아이디 + showId = tokens[5]; // 방송아이디 + exposureOrder = tokens[6]; // 노출순번 + curationId = tokens[7]; // 큐레이션아이디 + + panelName = panel_names.PLAYER_PANEL; + panelInfo = { + patnrId: patnrId, + showId: showId, + shptmBanrTpNm: "LIVE", + // exposureOrder: exposureOrder, + }; break; - case "MA": + case "VS": + // "VS": VOD Show + // V3_진입경로코드_진입경로명_VS_파트너아이디_방송아이디_노출순번_큐레이션아이디 + patnrId = tokens[4]; // 파트너아이디 + showId = tokens[5]; // 방송아이디 + exposureOrder = tokens[6]; // 노출순번 + curationId = tokens[7]; // 큐레이션아이디 + + panelName = panel_names.PLAYER_PANEL; + panelInfo = { + patnrId: patnrId, + showId: showId, + shptmBanrTpNm: "VOD", + // exposureOrder: exposureOrder, + }; break; case "TD": - break; - case "OS": - panelName = panel_names.ON_SALE_PANEL; - break; - case "HP": + // "TD": Theme Detail + // V3_진입경로코드_진입경로명_TD_파트너아이디_큐레이션아이디_상품아이디_노출순번_그룹번호 + // 상품아이디 (M): 테마상세 진입시 상품을 포커싱하기 위함 + // 노출순번 (O) : 상품아이디+그룹번호가 설정된 경우 필수 (없을시 "0" 설정) + // 그룹번호 (O) : TCHH 유형만 적용 + patnrId = tokens[4]; // 파트너아이디 + curationId = tokens[5]; // 큐레이션아이디 + prdtId = tokens[6]; // 상품아이디 + exposureOrder = tokens[7]; // 노출순번 + grNumber = tokens[8]; // 그룹번호 + + panelName = panel_names.DETAIL_PANEL; + panelInfo = { + patnrId: patnrId, + curationId: curationId, + prdtId: prdtId, + grNumber: grNumber, + type: "theme", + // exposureOrder: exposureOrder, + }; break; case "HD": + // "HD": Hotel Detail + // V3_진입경로코드_진입경로명_HD_파트너아이디_큐레이션아이디_노출순번 + patnrId = tokens[4]; // 파트너아이디 + curationId = tokens[5]; // 큐레이션아이디 + exposureOrder = tokens[6]; // 노출순번 + + panelName = panel_names.DETAIL_PANEL; + panelInfo = { + patnrId: patnrId, + curationId: curationId, + type: "hotel", + // exposureOrder: exposureOrder, + }; break; - case "APD": + case "HP": + // 미완성 + // Hot Picks에서 파트너 아이디 체크 + // "HP": Hot Picks + // V3_진입경로코드_진입경로명_HP_파트너아이디_큐레이션아이디_노출순번 + patnrId = tokens[4]; // 파트너아이디 + curationId = tokens[5]; // 큐레이션아이디 + exposureOrder = tokens[6]; // 노출순번 + + panelName = panel_names.HOT_PICKS_PANEL; + panelInfo = { + patnrId: patnrId, + curationId: curationId, + // exposureOrder: exposureOrder, + }; break; - case "AMD": + + case "WE": + // 미완성 + // 현재 welcome 진입 불가 + // "WE": Welcome Event + // V3_진입경로코드_진입경로명_WE_이벤트아이디 + evntId = tokens[4]; // 이벤트아이디 + + panelName = panel_names.WELCOME_EVENT_PANEL; + panelInfo = { + evntId: evntId, + }; break; - case "ATD": + case "OS": + // 미완성 + // 서브카테고리명 확인 필요 + // "OS": On Sale + // V3_진입경로코드_진입경로명_OS_LG카테고리Code_서브카테고리명 + lgCatCd = tokens[4]; // LG카테고리Code + lgCatNm = tokens[5]; // 서브카테고리명 + + panelName = panel_names.ON_SALE_PANEL; + panelInfo = { + lgCatCd: lgCatCd, + }; break; - case "ASD": - break; - case "TO": + case "BS": + // 미완성 + // TrendingNow 페이지에서 best sellers 위치 이동 처리 + // "BS": Best Sellers + // V3_진입경로코드_진입경로명_BS + panelName = panel_names.TRENDING_NOW_PANEL; break; case "PS": + // "PS": Popular Shows + // V3_진입경로코드_진입경로명_PS_노출순번 + panelName = panel_names.TRENDING_NOW_PANEL; break; + case "SC": + // 미완성 + // 카테고리 페이지 tab type 확인 + // "SC": Sub Category + // V3_진입경로코드_진입경로명_SC_LG카테고리Code_서브카테고리명_컨텐츠타입 + + lgCatCd = tokens[4]; // LG카테고리Code + lgCatNm = tokens[5]; // 서브카테고리명 + tabType = tokens[6]; // 컨텐츠타입 + + panelName = panel_names.CATEGORY_PANEL; + panelInfo = { + lgCatCd: lgCatCd, + }; + + // * LG 카테고리 Code : + // - 코드정의 : Admin > Master > Master Upload Mgmt. > Category Info(LG) > Show Data 버튼 + // - 복수개 가능 ( 콤마 "," 구분자) + // * 서브카테고리명 : 서브 카테고리 화면 상단에 출력 (스페이스 가능) + // "SC": Sub Category + // * 컨텐츠 타입 : Show / Item + break; + case "FB": + // "FB": Featured Brands + // V3_진입경로코드_진입경로명_FB_파트너아이디_노출순번 + patnrId = tokens[4]; // 파트너아이디 + + panelName = panel_names.FEATURED_BRANDS_PANEL; + panelInfo = { + patnrId: patnrId, + }; break; } if (panelName) { diff --git a/com.twin.app.shoptime/src/utils/helperMethods.js b/com.twin.app.shoptime/src/utils/helperMethods.js index 4df9da44..bbf8eebd 100644 --- a/com.twin.app.shoptime/src/utils/helperMethods.js +++ b/com.twin.app.shoptime/src/utils/helperMethods.js @@ -89,8 +89,22 @@ export const scaleH = (value) => { //for test let localLaunchParams = { - // contentTarget: "V2_aaa_dummy_OS_categorycode_subcategorycode", + // contentTarget: "V3_aaa_dummy_OS_categorycode_subcategorycode", + // contentTarget: "V3_8001_Tv_PD_2_20632899_0_766", + // contentTarget: "V3_8001_Tv_LS_1_USQVC20240418060000_0_766", + // contentTarget: "V3_8001_Tv_VS_1_65f43844407a5f3f4f22e65c_0_766", + // contentTarget: "V3_8001_Tv_TD_1_769_J395844_0_001", + // contentTarget: "V3_8001_Tv_HD_7_527_0", + // contentTarget: "V3_8001_Tv_HP_7_527_0", + // contentTarget: "V3_8001_Tv_WE_test", + // contentTarget: "V3_8001_Tv_OS_1006_a", + // contentTarget: "V3_8001_Tv_BS", + // contentTarget: "V3_8001_Tv_PS", + // contentTarget: "V3_8001_Tv_SC", + // contentTarget: "V3_8001_Tv_FB_4", + // V3_진입경로코드_진입경로명_OS_LG카테고리Code_서브카테고리명 }; + export const getLaunchParams = () => { let params = {};