import { pushPanel } from "../actions/panelActions"; import { LOG_MENU, LOG_TP_NO, panel_names } from "../utils/Config"; export const getMenuByLinkTpCd = (linkTpCd) => { switch (linkTpCd) { case "1000": return LOG_MENU.APP; case "2000": return LOG_MENU.HOME_BANNER_1; case "2001": return LOG_MENU.HOME_BANNER_2; case "3000": return LOG_MENU.TVAD_BIG_BANNER; case "3001": return LOG_MENU.TVAD_HOME_LAUNCHER; case "3002": return LOG_MENU.TVAD_WEDGE; case "3003": return LOG_MENU.TVAD_COMPANION; case "6001": return LOG_MENU.LG_CHANNEL_QVC; case "6002": return LOG_MENU.LG_CHANNEL_HSN; case "6004": return LOG_MENU.LG_CHANNEL_ONTV4U; case "7000": return LOG_MENU.OVERLAY; case "8000": return LOG_MENU.TV_2DEPTH; case "8001": return LOG_MENU.TV_SEARCH; case "8002": return LOG_MENU.TV_SEARCH; case "9999": return LOG_MENU.UNKNOWN; default: return LOG_MENU.APP; } }; export const getMenuByTargetContent = (contentTarget) => { if (!contentTarget) { return LOG_MENU.HOME_TOP; } const tokken = contentTarget.split("_"); const type = tokken[3]; if (type === "MT") { return LOG_MENU.HOME_TOP; } else if (type === "PD") { const patnrId = tokken[4]; return patnrId === "11" ? LOG_MENU.DETAIL_PAGE_BILLING_PRODUCT_DETAIL : LOG_MENU.DETAIL_PAGE_PRODUCT_DETAIL; } else if (type === "LS" || type === "VS") { return LOG_MENU.FULL_SHOP_NOW; } else if (type === "TD") { return LOG_MENU.DETAIL_PAGE_THEME_DETAIL; } else if (type === "HD") { return LOG_MENU.DETAIL_PAGE_TRAVEL_THEME_DETAIL; } else if (type === "HP") { return LOG_MENU.HOT_PICKS; } else if (type === "WE") { return LOG_MENU.WELCOME_EVENT; } else if (type === "OS") { return LOG_MENU.ON_SALE; } else if (type === "BS") { return LOG_MENU.TRENDING_NOW_BEST_SELLER; } else if (type === "PS") { return LOG_MENU.TRENDING_NOW_POPULAR_SHOWS; } else if (type === "SC") { const tabType = tokken[6]; return tabType.toLowerCase() === "show" ? LOG_MENU.CATEGORY_SHOWS : LOG_MENU.CATEGORY_ITEM; } else if (type === "PB") { return LOG_MENU.FEATURED_BRANDS_QUICK_MENU; } return null; }; //V2_진입경로코드_진입경로명_MT_노출순번 export const handleDeepLink = (contentTarget, callback) => (dispatch, getState) => { let linkTpCd; // 진입경로코드 let linkTpNm; // 진입경로명 let type; // 링크 타입 let patnrId; // 파트너아이디 let prdtId; // 상품아이디 let curationId; // 큐레이션아이디 let showId; // 방송아이디 let chanId; // 채널아이디 let expsOrd; // 노출순번 let grNumber; // 그룹번호 let evntId; // 이벤트아이디 let lgCatCd; // LG카테고리Code let lgCatNm; // 서브카테고리명 let tabType; // 카테고리 탭명 if (contentTarget === null || contentTarget === undefined) { linkTpCd = "1000"; } else { const tokens = contentTarget.split("_"); if (tokens[0] === "V2" || tokens[0] === "V3") { linkTpCd = tokens[1]; linkTpNm = tokens[2]; type = tokens[3]; let panelName = ""; let panelInfo = {}; switch (type) { 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]; // 상품아이디 expsOrd = tokens[6]; // 노출순번 curationId = tokens[7]; // 큐레이션아이디 panelName = panel_names.DETAIL_PANEL; panelInfo = { patnrId: patnrId, prdtId: prdtId, // expsOrd: expsOrd, }; break; case "LS": // "LS": Live Show // V3_진입경로코드_진입경로명_LS_파트너아이디_채널아이디_노출순번_큐레이션아이디 patnrId = tokens[4]; // 파트너아이디 chanId = tokens[5]; // 채널아이디 expsOrd = tokens[6]; // 노출순번 curationId = tokens[7]; // 큐레이션아이디 panelName = panel_names.PLAYER_PANEL; panelInfo = { patnrId: patnrId, chanId: chanId, shptmBanrTpNm: "LIVE", // expsOrd: expsOrd, }; break; case "VS": // "VS": VOD Show // V3_진입경로코드_진입경로명_VS_파트너아이디_방송아이디_노출순번_큐레이션아이디 patnrId = tokens[4]; // 파트너아이디 showId = tokens[5]; // 방송아이디 expsOrd = tokens[6]; // 노출순번 curationId = tokens[7]; // 큐레이션아이디 panelName = panel_names.PLAYER_PANEL; panelInfo = { patnrId: patnrId, showId: showId, shptmBanrTpNm: "VOD", // expsOrd: expsOrd, }; break; case "TD": // "TD": Theme Detail // V3_진입경로코드_진입경로명_TD_파트너아이디_큐레이션아이디_상품아이디_노출순번_그룹번호 // 상품아이디 (M): 테마상세 진입시 상품을 포커싱하기 위함 // 노출순번 (O) : 상품아이디+그룹번호가 설정된 경우 필수 (없을시 "0" 설정) // 그룹번호 (O) : TCHH 유형만 적용 patnrId = tokens[4]; // 파트너아이디 curationId = tokens[5]; // 큐레이션아이디\ prdtId = tokens[6]; // 상품아이디 expsOrd = tokens[7]; // 노출순번 grNumber = tokens[8]; // 그룹번호 panelName = panel_names.DETAIL_PANEL; panelInfo = { patnrId: patnrId, curationId: curationId, themePrdtId: prdtId, // 포커스 아이디 prdtId: prdtId, // 데이터 조회 grNumber: grNumber, type: "theme", // expsOrd: expsOrd, }; break; case "HD": // "HD": Hotel Detail // V3_진입경로코드_진입경로명_HD_파트너아이디_큐레이션아이디_노출순번 patnrId = tokens[4]; // 파트너아이디 curationId = tokens[5]; // 큐레이션아이디 expsOrd = tokens[6]; // 노출순번 panelName = panel_names.DETAIL_PANEL; panelInfo = { patnrId: patnrId, curationId: curationId, type: "hotel", // expsOrd: expsOrd, }; break; case "HP": // "HP": Hot Picks // V3_진입경로코드_진입경로명_HP_파트너아이디_큐레이션아이디_노출순번 patnrId = tokens[4]; // 파트너아이디 curationId = tokens[5]; // 큐레이션아이디 expsOrd = tokens[6]; // 노출순번 panelName = panel_names.HOT_PICKS_PANEL; panelInfo = { patnrId: patnrId, curationId: curationId, // expsOrd: expsOrd, }; break; case "WE": // "WE": Welcome Event // V3_진입경로코드_진입경로명_WE_이벤트아이디 evntId = tokens[4]; // 이벤트아이디 panelName = panel_names.WELCOME_EVENT_PANEL; panelInfo = { evntId: evntId, }; break; 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, lgCatNm: lgCatNm, }; break; case "BS": // "BS": Best Sellers // V3_진입경로코드_진입경로명_BS panelName = panel_names.TRENDING_NOW_PANEL; panelInfo = { pageName: "BS", }; break; case "PS": // "PS": Popular Shows // V3_진입경로코드_진입경로명_PS_노출순번 panelName = panel_names.TRENDING_NOW_PANEL; break; case "SC": // "SC": Sub Category // V3_진입경로코드_진입경로명_SC_LG카테고리Code_서브카테고리명_컨텐츠타입 // * 컨텐츠 타입 : Show / Item lgCatCd = tokens[4]; // LG카테고리Code lgCatNm = tokens[5]; // 서브카테고리명 tabType = tokens[6].toLowerCase(); // 컨텐츠타입 panelName = panel_names.CATEGORY_PANEL; panelInfo = { lgCatCd: lgCatCd, lgCatNm: lgCatNm, tab: tabType === "show" ? 0 : 1, }; break; case "FB": // "FB": Featured Brands // V3_진입경로코드_진입경로명_FB_파트너아이디_노출순번 patnrId = tokens[4]; // 파트너아이디 panelName = panel_names.FEATURED_BRANDS_PANEL; panelInfo = { patnrId: patnrId, }; break; case "TC": patnrId = tokens[4]; // 파트너아이디 panelName = panel_names.THEME_CURATION_PANEL; panelInfo = { lnkCurationId: curationId, }; break; } if (panelName) { console.log("handleDeepLink - panelName", panelName, panelInfo); dispatch( pushPanel({ name: panelName, panelInfo: { ...panelInfo, linkTpCd }, }) ); } } else { console.log("handleDeepLink - no target"); } } if (callback) { const params = { curationId: curationId ?? "", curationNm: "", entryMenu: getMenuByLinkTpCd(linkTpCd), expsOrd: expsOrd ?? "0", lgCatCd: lgCatCd ?? "", lgCatNm: lgCatNm ?? "", linkTpCd: linkTpCd, logTpNo: LOG_TP_NO.SECOND_LAYER, nowMenu: getMenuByTargetContent(contentTarget), patncNm: "", patnrId: patnrId ?? "", prdtId: prdtId ?? "", prdtNm: "", showId: showId ?? "", showNm: "", }; callback(params); } };