diff --git a/com.twin.app.shoptime/src/actions/actionTypes.js b/com.twin.app.shoptime/src/actions/actionTypes.js index 9e555e0c..5f99e3fc 100644 --- a/com.twin.app.shoptime/src/actions/actionTypes.js +++ b/com.twin.app.shoptime/src/actions/actionTypes.js @@ -2,220 +2,220 @@ export const types = { // panel actions - PUSH_PANEL: 'PUSH_PANEL', - POP_PANEL: 'POP_PANEL', - UPDATE_PANEL: 'UPDATE_PANEL', - RESET_PANELS: 'RESET_PANELS', + PUSH_PANEL: "PUSH_PANEL", + POP_PANEL: "POP_PANEL", + UPDATE_PANEL: "UPDATE_PANEL", + RESET_PANELS: "RESET_PANELS", // device actions - GET_AUTHENTICATION_CODE: 'GET_AUTHENTICATION_CODE', - REGISTER_DEVICE: 'REGISTER_DEVICE', - REGISTER_DEVICE_INFO: 'REGISTER_DEVICE_INFO', - GET_DEVICE_INFO: 'GET_DEVICE_INFO', - CLEAR_REGISTER_DEVICE_INFO: 'CLEAR_REGISTER_DEVICE_INFO', - REGISTER_DEVICE_RESET: 'REGISTER_DEVICE_RESET', + GET_AUTHENTICATION_CODE: "GET_AUTHENTICATION_CODE", + REGISTER_DEVICE: "REGISTER_DEVICE", + REGISTER_DEVICE_INFO: "REGISTER_DEVICE_INFO", + GET_DEVICE_INFO: "GET_DEVICE_INFO", + CLEAR_REGISTER_DEVICE_INFO: "CLEAR_REGISTER_DEVICE_INFO", + REGISTER_DEVICE_RESET: "REGISTER_DEVICE_RESET", // common actions - GET_HTTP_HEADER: 'GET_HTTP_HEADER', - CHANGE_APP_STATUS: 'CHANGE_APP_STATUS', - SEND_BROADCAST: 'SEND_BROADCAST', - CHANGE_LOCAL_SETTINGS: 'CHANGE_LOCAL_SETTINGS', - GNB_OPENED: 'GNB_OPENED', - SET_SHOW_POPUP: 'SET_SHOW_POPUP', - SET_SHOW_SECONDARY_POPUP: 'SET_SHOW_SECONDARY_POPUP', - SET_HIDE_POPUP: 'SET_HIDE_POPUP', - SET_HIDE_SECONDARY_POPUP: 'SET_HIDE_SECONDARY_POPUP', - SHOW_OPTIONAL_TERMS_CONFIRM_POPUP: 'SHOW_OPTIONAL_TERMS_CONFIRM_POPUP', - HIDE_OPTIONAL_TERMS_CONFIRM_POPUP: 'HIDE_OPTIONAL_TERMS_CONFIRM_POPUP', - TOGGLE_OPTIONAL_TERMS_CONFIRM: 'TOGGLE_OPTIONAL_TERMS_CONFIRM', + GET_HTTP_HEADER: "GET_HTTP_HEADER", + CHANGE_APP_STATUS: "CHANGE_APP_STATUS", + SEND_BROADCAST: "SEND_BROADCAST", + CHANGE_LOCAL_SETTINGS: "CHANGE_LOCAL_SETTINGS", + GNB_OPENED: "GNB_OPENED", + SET_SHOW_POPUP: "SET_SHOW_POPUP", + SET_SHOW_SECONDARY_POPUP: "SET_SHOW_SECONDARY_POPUP", + SET_HIDE_POPUP: "SET_HIDE_POPUP", + SET_HIDE_SECONDARY_POPUP: "SET_HIDE_SECONDARY_POPUP", + SHOW_OPTIONAL_TERMS_CONFIRM_POPUP: "SHOW_OPTIONAL_TERMS_CONFIRM_POPUP", + HIDE_OPTIONAL_TERMS_CONFIRM_POPUP: "HIDE_OPTIONAL_TERMS_CONFIRM_POPUP", + TOGGLE_OPTIONAL_TERMS_CONFIRM: "TOGGLE_OPTIONAL_TERMS_CONFIRM", // 선택약관 팝업 상태 관리 - SET_OPTIONAL_TERMS_POPUP_SHOWN: 'SET_OPTIONAL_TERMS_POPUP_SHOWN', - SET_OPTIONAL_TERMS_USER_DECISION: 'SET_OPTIONAL_TERMS_USER_DECISION', - RESET_OPTIONAL_TERMS_SESSION: 'RESET_OPTIONAL_TERMS_SESSION', + SET_OPTIONAL_TERMS_POPUP_SHOWN: "SET_OPTIONAL_TERMS_POPUP_SHOWN", + SET_OPTIONAL_TERMS_USER_DECISION: "SET_OPTIONAL_TERMS_USER_DECISION", + RESET_OPTIONAL_TERMS_SESSION: "RESET_OPTIONAL_TERMS_SESSION", // 선택약관 직접 상태 업데이트 (API 호출 없이) - UPDATE_OPTIONAL_TERMS_AGREE_DIRECT: 'UPDATE_OPTIONAL_TERMS_AGREE_DIRECT', - UPDATE_TERMS_AGREEMENT_STATUS_DIRECT: 'UPDATE_TERMS_AGREEMENT_STATUS_DIRECT', - SET_EXIT_APP: 'SET_EXIT_APP', - GET_LOGIN_USER_DATA: 'GET_LOGIN_USER_DATA', - GET_TERMS_AGREE_YN: 'GET_TERMS_AGREE_YN', - LAUNCH_MEMBERSHIP_APP: 'LAUNCH_MEMBERSHIP_APP', - SET_FOCUS: 'SET_FOCUS', - SET_GNB_MENU: 'SET_GNB_MENU', - SET_SYSTEM_NOTICE: 'SET_SYSTEM_NOTICE', - SET_SYSTEM_TERMINATION: 'SET_SYSTEM_TERMINATION', - SET_DEEP_LINK: 'SET_DEEP_LINK', - SET_SECOND_LAYER_INFO: 'SET_SECOND_LAYER_INFO', - SET_ERROR_MESSAGE: 'SET_ERROR_MESSAGE', - CLEAR_ERROR_MESSAGE: 'CLEAR_ERROR_MESSAGE', - GET_DEVICE_MACADDRESS: 'GET_DEVICE_MACADDRESS', - SET_DEVICE_REGISTERED: 'SET_DEVICE_REGISTERED', + UPDATE_OPTIONAL_TERMS_AGREE_DIRECT: "UPDATE_OPTIONAL_TERMS_AGREE_DIRECT", + UPDATE_TERMS_AGREEMENT_STATUS_DIRECT: "UPDATE_TERMS_AGREEMENT_STATUS_DIRECT", + SET_EXIT_APP: "SET_EXIT_APP", + GET_LOGIN_USER_DATA: "GET_LOGIN_USER_DATA", + GET_TERMS_AGREE_YN: "GET_TERMS_AGREE_YN", + LAUNCH_MEMBERSHIP_APP: "LAUNCH_MEMBERSHIP_APP", + SET_FOCUS: "SET_FOCUS", + SET_GNB_MENU: "SET_GNB_MENU", + SET_SYSTEM_NOTICE: "SET_SYSTEM_NOTICE", + SET_SYSTEM_TERMINATION: "SET_SYSTEM_TERMINATION", + SET_DEEP_LINK: "SET_DEEP_LINK", + SET_SECOND_LAYER_INFO: "SET_SECOND_LAYER_INFO", + SET_ERROR_MESSAGE: "SET_ERROR_MESSAGE", + CLEAR_ERROR_MESSAGE: "CLEAR_ERROR_MESSAGE", + GET_DEVICE_MACADDRESS: "GET_DEVICE_MACADDRESS", + SET_DEVICE_REGISTERED: "SET_DEVICE_REGISTERED", // billing actions - GET_MY_INFO_BILLING_SEARCH: 'GET_MY_INFO_BILLING_SEARCH', + GET_MY_INFO_BILLING_SEARCH: "GET_MY_INFO_BILLING_SEARCH", // card actions - GET_MY_INFO_CARD_SEARCH: 'GET_MY_INFO_CARD_SEARCH', + GET_MY_INFO_CARD_SEARCH: "GET_MY_INFO_CARD_SEARCH", // shipping actions - GET_MY_INFO_SHIPPING_SEARCH: 'GET_MY_INFO_SHIPPING_SEARCH', + GET_MY_INFO_SHIPPING_SEARCH: "GET_MY_INFO_SHIPPING_SEARCH", // cart actions - GET_MY_INFO_CART_SEARCH: 'GET_MY_INFO_CART_SEARCH', - ADD_TO_CART: 'ADD_TO_CART', - REMOVE_FROM_CART: 'REMOVE_FROM_CART', - UPDATE_CART_ITEM: 'UPDATE_CART_ITEM', - CLEAR_CART: 'CLEAR_CART', + GET_MY_INFO_CART_SEARCH: "GET_MY_INFO_CART_SEARCH", + ADD_TO_CART: "ADD_TO_CART", + REMOVE_FROM_CART: "REMOVE_FROM_CART", + UPDATE_CART_ITEM: "UPDATE_CART_ITEM", + CLEAR_CART: "CLEAR_CART", // appData actions - ADD_MAIN_INDEX: 'ADD_MAIN_INDEX', - SEND_SMS: 'SEND_SMS', - CLEAR_SMS: 'CLEAR_SMS', + ADD_MAIN_INDEX: "ADD_MAIN_INDEX", + SEND_SMS: "SEND_SMS", + CLEAR_SMS: "CLEAR_SMS", // home actions - GET_HOME_TERMS: 'GET_HOME_TERMS', - SET_TERMS_ID_MAP: 'SET_TERMS_ID_MAP', - SET_OPTIONAL_TERMS_AVAILABILITY: 'SET_OPTIONAL_TERMS_AVAILABILITY', - GET_HOME_MENU: 'GET_HOME_MENU', - GET_HOME_LAYOUT: 'GET_HOME_LAYOUT', - GET_HOME_MAIN_CONTENTS: 'GET_HOME_MAIN_CONTENTS', - GET_HOME_FULL_VIDEO_INFO: 'GET_HOME_FULL_VIDEO_INFO', - GET_THEME_CURATION_INFO: 'GET_THEME_CURATION_INFO', - GET_THEME_CURATION_DETAIL_INFO: 'GET_THEME_CURATION_DETAIL_INFO', - GET_THEME_HOTEL_DETAIL_INFO: 'GET_THEME_HOTEL_DETAIL_INFO', - GET_THEME_MENU_SHELF_INFO: 'GET_THEME_MENU_SHELF_INFO', - CLEAR_THEME_MENU_SHELF_INFO: 'CLEAR_THEME_MENU_SHELF_INFO', - CLEAR_THEME_DETAIL: 'CLEAR_THEME_DETAIL', - CHECK_ENTER_THROUGH_GNB: 'CHECK_ENTER_THROUGH_GNB', - SET_DEFAULT_FOCUS: 'SET_DEFAULT_FOCUS', - SET_BANNER_INDEX: 'SET_BANNER_INDEX', - RESET_HOME_INFO: 'RESET_HOME_INFO', - UPDATE_HOME_INFO: 'UPDATE_HOME_INFO', + GET_HOME_TERMS: "GET_HOME_TERMS", + SET_TERMS_ID_MAP: "SET_TERMS_ID_MAP", + SET_OPTIONAL_TERMS_AVAILABILITY: "SET_OPTIONAL_TERMS_AVAILABILITY", + GET_HOME_MENU: "GET_HOME_MENU", + GET_HOME_LAYOUT: "GET_HOME_LAYOUT", + GET_HOME_MAIN_CONTENTS: "GET_HOME_MAIN_CONTENTS", + GET_HOME_FULL_VIDEO_INFO: "GET_HOME_FULL_VIDEO_INFO", + GET_THEME_CURATION_INFO: "GET_THEME_CURATION_INFO", + GET_THEME_CURATION_DETAIL_INFO: "GET_THEME_CURATION_DETAIL_INFO", + GET_THEME_HOTEL_DETAIL_INFO: "GET_THEME_HOTEL_DETAIL_INFO", + GET_THEME_MENU_SHELF_INFO: "GET_THEME_MENU_SHELF_INFO", + CLEAR_THEME_MENU_SHELF_INFO: "CLEAR_THEME_MENU_SHELF_INFO", + CLEAR_THEME_DETAIL: "CLEAR_THEME_DETAIL", + CHECK_ENTER_THROUGH_GNB: "CHECK_ENTER_THROUGH_GNB", + SET_DEFAULT_FOCUS: "SET_DEFAULT_FOCUS", + SET_BANNER_INDEX: "SET_BANNER_INDEX", + RESET_HOME_INFO: "RESET_HOME_INFO", + UPDATE_HOME_INFO: "UPDATE_HOME_INFO", // brand actions - GET_BRAND_LIST: 'GET_BRAND_LIST', - GET_BRAND_LAYOUT_INFO: 'GET_BRAND_LAYOUT_INFO', - GET_BRAND_LIVE_CHANNEL_INFO: 'GET_BRAND_LIVE_CHANNEL_INFO', - GET_BRAND_CHAN_INFO: 'GET_BRAND_CHAN_INFO', - GET_BRAND_TSV_INFO: 'GET_BRAND_TSV_INFO', - GET_BRAND_RECOMMENDED_SHOW_INFO: 'GET_BRAND_RECOMMENDED_SHOW_INFO', - GET_BRAND_SERIES_INFO: 'GET_BRAND_SERIES_INFO', - GET_BRAND_CATEGORY_INFO: 'GET_BRAND_CATEGORY_INFO', - GET_BRAND_CATEGORY_PRODUCT_INFO: 'GET_BRAND_CATEGORY_PRODUCT_INFO', - GET_BRAND_BEST_SELLER: 'GET_BRAND_BEST_SELLER', - GET_BRAND_CREATORS_INFO: 'GET_BRAND_CREATORS_INFO', - GET_BRAND_SHOWROOM: 'GET_BRAND_SHOWROOM', - GET_BRAND_RECENTLY_AIRED: 'GET_BRAND_RECENTLY_AIRED', - SET_BRAND_LIVE_CHANNEL_UPCOMING: 'SET_BRAND_LIVE_CHANNEL_UPCOMING', - SET_BRAND_CHAN_INFO: 'SET_BRAND_CHAN_INFO', - RESET_BRAND_STATE: 'RESET_BRAND_STATE', - RESET_BRAND_STATE_EXCEPT_BRAND_INFO: 'RESET_BRAND_STATE_EXCEPT_BRAND_INFO', - RESET_BRAND_LAYOUT_INFO: 'RESET_BRAND_LAYOUT_INFO', + GET_BRAND_LIST: "GET_BRAND_LIST", + GET_BRAND_LAYOUT_INFO: "GET_BRAND_LAYOUT_INFO", + GET_BRAND_LIVE_CHANNEL_INFO: "GET_BRAND_LIVE_CHANNEL_INFO", + GET_BRAND_CHAN_INFO: "GET_BRAND_CHAN_INFO", + GET_BRAND_TSV_INFO: "GET_BRAND_TSV_INFO", + GET_BRAND_RECOMMENDED_SHOW_INFO: "GET_BRAND_RECOMMENDED_SHOW_INFO", + GET_BRAND_SERIES_INFO: "GET_BRAND_SERIES_INFO", + GET_BRAND_CATEGORY_INFO: "GET_BRAND_CATEGORY_INFO", + GET_BRAND_CATEGORY_PRODUCT_INFO: "GET_BRAND_CATEGORY_PRODUCT_INFO", + GET_BRAND_BEST_SELLER: "GET_BRAND_BEST_SELLER", + GET_BRAND_CREATORS_INFO: "GET_BRAND_CREATORS_INFO", + GET_BRAND_SHOWROOM: "GET_BRAND_SHOWROOM", + GET_BRAND_RECENTLY_AIRED: "GET_BRAND_RECENTLY_AIRED", + SET_BRAND_LIVE_CHANNEL_UPCOMING: "SET_BRAND_LIVE_CHANNEL_UPCOMING", + SET_BRAND_CHAN_INFO: "SET_BRAND_CHAN_INFO", + RESET_BRAND_STATE: "RESET_BRAND_STATE", + RESET_BRAND_STATE_EXCEPT_BRAND_INFO: "RESET_BRAND_STATE_EXCEPT_BRAND_INFO", + RESET_BRAND_LAYOUT_INFO: "RESET_BRAND_LAYOUT_INFO", // main actions - GET_SUB_CATEGORY: 'GET_SUB_CATEGORY', - APPEND_SUB_CATEGORY: 'APPEND_SUB_CATEGORY', - GET_TOP_20_SHOW: 'GET_TOP_20_SHOW', - GET_PRODUCT_DETAIL: 'GET_PRODUCT_DETAIL', - GET_YOUMAYLIKE: 'GET_YOUMAYLIKE', - SET_MAIN_LIKE_CATEGORY: 'SET_MAIN_LIKE_CATEGORY', - SET_MAIN_LIVE_UPCOMING_ALARM: 'SET_MAIN_LIVE_UPCOMING_ALARM', - GET_MAIN_LIVE_SHOW_NOW_PRODUCT: 'GET_MAIN_LIVE_SHOW_NOW_PRODUCT', - GET_MAIN_LIVE_SHOW: 'GET_MAIN_LIVE_SHOW', - GET_MAIN_CATEGORY_SHOW_DETAIL: 'GET_MAIN_CATEGORY_SHOW_DETAIL', - CLEAR_PRODUCT_DETAIL: 'CLEAR_PRODUCT_DETAIL', - CLEAR_SUB_CATEGORY: 'CLEAR_SUB_CATEGORY', - CLEAR_SHOPNOW_INFO: 'CLEAR_SHOPNOW_INFO', + GET_SUB_CATEGORY: "GET_SUB_CATEGORY", + APPEND_SUB_CATEGORY: "APPEND_SUB_CATEGORY", + GET_TOP_20_SHOW: "GET_TOP_20_SHOW", + GET_PRODUCT_DETAIL: "GET_PRODUCT_DETAIL", + GET_YOUMAYLIKE: "GET_YOUMAYLIKE", + SET_MAIN_LIKE_CATEGORY: "SET_MAIN_LIKE_CATEGORY", + SET_MAIN_LIVE_UPCOMING_ALARM: "SET_MAIN_LIVE_UPCOMING_ALARM", + GET_MAIN_LIVE_SHOW_NOW_PRODUCT: "GET_MAIN_LIVE_SHOW_NOW_PRODUCT", + GET_MAIN_LIVE_SHOW: "GET_MAIN_LIVE_SHOW", + GET_MAIN_CATEGORY_SHOW_DETAIL: "GET_MAIN_CATEGORY_SHOW_DETAIL", + CLEAR_PRODUCT_DETAIL: "CLEAR_PRODUCT_DETAIL", + CLEAR_SUB_CATEGORY: "CLEAR_SUB_CATEGORY", + CLEAR_SHOPNOW_INFO: "CLEAR_SHOPNOW_INFO", // myPage actions - GET_MY_RECOMMANDED_KEYWORD: 'GET_MY_RECOMMANDED_KEYWORD', - GET_MY_FAQ_INFO: 'GET_MY_FAQ_INFO', - GET_NOTICE: 'GET_NOTICE', - GET_MY_CUSTOMERS: 'GET_MY_CUSTOMERS', - GET_MY_FAVORITE: 'GET_MY_FAVORITE', - DELETE_MY_FAVORITE: 'DELETE_MY_FAVORITE', - GET_MY_FAVORITE_FLAG: 'GET_MY_FAVORITE_FLAG', - SET_MY_TERMS_WITHDRAW: 'SET_MY_TERMS_WITHDRAW', - GET_MY_UPCOMING_CHANGE_INFO: 'GET_MY_UPCOMING_CHANGE_INFO', - GET_MY_UPCOMING_ALERT_SHOW: 'GET_MY_UPCOMING_ALERT_SHOW', - DELETE_MY_UPCOMING_ALERT_SHOW: 'DELETE_MY_UPCOMING_ALERT_SHOW', - GET_MY_UPCOMING_ALERT_SHOW_KEYS: 'GET_MY_UPCOMING_ALERT_SHOW_KEYS', - SET_MY_UPCOMING_USE_ALERT: 'SET_MY_UPCOMING_USE_ALERT', - GET_UPCOMING_ALERT_SHOW_CHANGE_INFO: 'GET_UPCOMING_ALERT_SHOW_CHANGE_INFO', - GET_MY_RECENTLY_VIEWED_INFO: 'GET_MY_RECENTLY_VIEWED_INFO', - CLEAR_RECENTLY_VIEWED_INFO: 'CLEAR_RECENTLY_VIEWED_INFO', - CLEAR_FAVORITES: 'CLEAR_FAVORITES', - SET_MYPAGE_TERMS_AGREE: 'SET_MYPAGE_TERMS_AGREE', - SET_MYPAGE_TERMS_AGREE_SUCCESS: 'SET_MYPAGE_TERMS_AGREE_SUCCESS', - SET_MYPAGE_TERMS_AGREE_FAIL: 'SET_MYPAGE_TERMS_AGREE_FAIL', + GET_MY_RECOMMANDED_KEYWORD: "GET_MY_RECOMMANDED_KEYWORD", + GET_MY_FAQ_INFO: "GET_MY_FAQ_INFO", + GET_NOTICE: "GET_NOTICE", + GET_MY_CUSTOMERS: "GET_MY_CUSTOMERS", + GET_MY_FAVORITE: "GET_MY_FAVORITE", + DELETE_MY_FAVORITE: "DELETE_MY_FAVORITE", + GET_MY_FAVORITE_FLAG: "GET_MY_FAVORITE_FLAG", + SET_MY_TERMS_WITHDRAW: "SET_MY_TERMS_WITHDRAW", + GET_MY_UPCOMING_CHANGE_INFO: "GET_MY_UPCOMING_CHANGE_INFO", + GET_MY_UPCOMING_ALERT_SHOW: "GET_MY_UPCOMING_ALERT_SHOW", + DELETE_MY_UPCOMING_ALERT_SHOW: "DELETE_MY_UPCOMING_ALERT_SHOW", + GET_MY_UPCOMING_ALERT_SHOW_KEYS: "GET_MY_UPCOMING_ALERT_SHOW_KEYS", + SET_MY_UPCOMING_USE_ALERT: "SET_MY_UPCOMING_USE_ALERT", + GET_UPCOMING_ALERT_SHOW_CHANGE_INFO: "GET_UPCOMING_ALERT_SHOW_CHANGE_INFO", + GET_MY_RECENTLY_VIEWED_INFO: "GET_MY_RECENTLY_VIEWED_INFO", + CLEAR_RECENTLY_VIEWED_INFO: "CLEAR_RECENTLY_VIEWED_INFO", + CLEAR_FAVORITES: "CLEAR_FAVORITES", + SET_MYPAGE_TERMS_AGREE: "SET_MYPAGE_TERMS_AGREE", + SET_MYPAGE_TERMS_AGREE_SUCCESS: "SET_MYPAGE_TERMS_AGREE_SUCCESS", + SET_MYPAGE_TERMS_AGREE_FAIL: "SET_MYPAGE_TERMS_AGREE_FAIL", // onSale actions - GET_HOME_ON_SALE_INFO: 'GET_HOME_ON_SALE_INFO', - GET_ON_SALE_INFO: 'GET_ON_SALE_INFO', - COPY_CATEGORY_INFO: 'COPY_CATEGORY_INFO', - RESET_ON_SALE_STATE: 'RESET_ON_SALE_STATE', + GET_HOME_ON_SALE_INFO: "GET_HOME_ON_SALE_INFO", + GET_ON_SALE_INFO: "GET_ON_SALE_INFO", + COPY_CATEGORY_INFO: "COPY_CATEGORY_INFO", + RESET_ON_SALE_STATE: "RESET_ON_SALE_STATE", // product actions - GET_BEST_SELLER: 'GET_BEST_SELLER', - GET_PRODUCT_GROUP: 'GET_PRODUCT_GROUP', - GET_PRODUCT_OPTION: 'GET_PRODUCT_OPTION', - GET_PRODUCT_IMAGE_LENGTH: 'GET_PRODUCT_IMAGE_LENGTH', - GET_VIDEO_INDECATOR_FOCUS: 'GET_VIDEO_INDECATOR_FOCUS', - GET_PRODUCT_OPTION_ID: 'GET_PRODUCT_OPTION_ID', - CLEAR_PRODUCT_OPTIONS: 'CLEAR_PRODUCT_OPTIONS', - GET_USER_REVIEW: 'GET_USER_REVIEW', - TOGGLE_SHOW_ALL_REVIEWS: 'TOGGLE_SHOW_ALL_REVIEWS', - RESET_SHOW_ALL_REVIEWS: 'RESET_SHOW_ALL_REVIEWS', + GET_BEST_SELLER: "GET_BEST_SELLER", + GET_PRODUCT_GROUP: "GET_PRODUCT_GROUP", + GET_PRODUCT_OPTION: "GET_PRODUCT_OPTION", + GET_PRODUCT_IMAGE_LENGTH: "GET_PRODUCT_IMAGE_LENGTH", + GET_VIDEO_INDECATOR_FOCUS: "GET_VIDEO_INDECATOR_FOCUS", + GET_PRODUCT_OPTION_ID: "GET_PRODUCT_OPTION_ID", + CLEAR_PRODUCT_OPTIONS: "CLEAR_PRODUCT_OPTIONS", + GET_USER_REVIEW: "GET_USER_REVIEW", + TOGGLE_SHOW_ALL_REVIEWS: "TOGGLE_SHOW_ALL_REVIEWS", + RESET_SHOW_ALL_REVIEWS: "RESET_SHOW_ALL_REVIEWS", // search actions - GET_SEARCH: 'GET_SEARCH', - GET_SHOPPERHOUSE_SEARCH: 'GET_SHOPPERHOUSE_SEARCH', - RESET_SEARCH: 'RESET_SEARCH', - GET_SEARCH_PROCESSED: 'GET_SEARCH_PROCESSED', - SET_SEARCH_INIT_PERFORMED: 'SET_SEARCH_INIT_PERFORMED', - UPDATE_SEARCH_TIMESTAMP: 'UPDATE_SEARCH_TIMESTAMP', + GET_SEARCH: "GET_SEARCH", + GET_SHOPPERHOUSE_SEARCH: "GET_SHOPPERHOUSE_SEARCH", + RESET_SEARCH: "RESET_SEARCH", + GET_SEARCH_PROCESSED: "GET_SEARCH_PROCESSED", + SET_SEARCH_INIT_PERFORMED: "SET_SEARCH_INIT_PERFORMED", + UPDATE_SEARCH_TIMESTAMP: "UPDATE_SEARCH_TIMESTAMP", // event actions - GET_WELCOME_EVENT_INFO: 'GET_WELCOME_EVENT_INFO', - GET_EVENT_ISSUED_STATUS: 'GET_EVENT_ISSUED_STATUS', - SET_EVENT_ISSUE_REQ: 'SET_EVENT_ISSUE_REQ', - SET_EVENT_POP_CLICK_INFO: 'SET_EVENT_POP_CLICK_INFO', - CLEAR_EVENT_INFO: 'CLEAR_EVENT_INFO', - SKIP_CLICK_INFO: 'SKIP_CLICK_INFO', - CLEAR_CURATION_COUPON: 'CLEAR_CURATION_COUPON', - CLEAR_EVENT_ISSUED_STATUS_SUCCEESS: 'CLEAR_EVENT_ISSUED_STATUS_SUCCEESS', + GET_WELCOME_EVENT_INFO: "GET_WELCOME_EVENT_INFO", + GET_EVENT_ISSUED_STATUS: "GET_EVENT_ISSUED_STATUS", + SET_EVENT_ISSUE_REQ: "SET_EVENT_ISSUE_REQ", + SET_EVENT_POP_CLICK_INFO: "SET_EVENT_POP_CLICK_INFO", + CLEAR_EVENT_INFO: "CLEAR_EVENT_INFO", + SKIP_CLICK_INFO: "SKIP_CLICK_INFO", + CLEAR_CURATION_COUPON: "CLEAR_CURATION_COUPON", + CLEAR_EVENT_ISSUED_STATUS_SUCCEESS: "CLEAR_EVENT_ISSUED_STATUS_SUCCEESS", // coupon actions - GET_PRODUCT_COUPON_INFO: 'GET_PRODUCT_COUPON_INFO', - GET_PRODUCT_COUPON_SEARCH: 'GET_PRODUCT_COUPON_SEARCH', - GET_PRODUCT_COUPON_DOWNLOAD: 'GET_PRODUCT_COUPON_DOWNLOAD', - GET_PRODUCT_COUPON_TOTDOWNLOAD: 'GET_PRODUCT_COUPON_TOTDOWNLOAD', - CLEAR_COUPON_INFO: 'CLEAR_COUPON_INFO', - CLEAR_GET_PRODUCT_COUPON_DOWNLOAD: 'CLEAR_GET_PRODUCT_COUPON_DOWNLOAD', + GET_PRODUCT_COUPON_INFO: "GET_PRODUCT_COUPON_INFO", + GET_PRODUCT_COUPON_SEARCH: "GET_PRODUCT_COUPON_SEARCH", + GET_PRODUCT_COUPON_DOWNLOAD: "GET_PRODUCT_COUPON_DOWNLOAD", + GET_PRODUCT_COUPON_TOTDOWNLOAD: "GET_PRODUCT_COUPON_TOTDOWNLOAD", + CLEAR_COUPON_INFO: "CLEAR_COUPON_INFO", + CLEAR_GET_PRODUCT_COUPON_DOWNLOAD: "CLEAR_GET_PRODUCT_COUPON_DOWNLOAD", // checkout actions - GET_CHECKOUT_INFO: 'GET_CHECKOUT_INFO', - INSERT_MY_INFO_CHECKOUT_ORDER: 'INSERT_MY_INFO_CHECKOUT_ORDER', - GET_TAX_INFOS: 'GET_TAX_INFOS', - UPDATE_SELECTED_SHIPPING_ADDR: 'UPDATE_SELECTED_SHIPPING_ADDR', - UPDATE_SELECTED_BILLING_ADDR: 'UPDATE_SELECTED_BILLING_ADDR', - UPDATE_SELECTED_COUPON: 'UPDATE_SELECTED_COUPON', - GET_CHECKOUT_TOTAL_AMT: 'GET_CHECKOUT_TOTAL_AMT', - CHECKOUT_DATA_RESET: 'CHECKOUT_DATA_RESET', + GET_CHECKOUT_INFO: "GET_CHECKOUT_INFO", + INSERT_MY_INFO_CHECKOUT_ORDER: "INSERT_MY_INFO_CHECKOUT_ORDER", + GET_TAX_INFOS: "GET_TAX_INFOS", + UPDATE_SELECTED_SHIPPING_ADDR: "UPDATE_SELECTED_SHIPPING_ADDR", + UPDATE_SELECTED_BILLING_ADDR: "UPDATE_SELECTED_BILLING_ADDR", + UPDATE_SELECTED_COUPON: "UPDATE_SELECTED_COUPON", + GET_CHECKOUT_TOTAL_AMT: "GET_CHECKOUT_TOTAL_AMT", + CHECKOUT_DATA_RESET: "CHECKOUT_DATA_RESET", // order actions - SET_PURCHASE_TERMS_AGREE: 'SET_PURCHASE_TERMS_AGREE', - SET_PURCHASE_TERMS_WITHDRAW: 'SET_PURCHASE_TERMS_WITHDRAW', - GET_MY_INFO_ORDER_SEARCH: 'GET_MY_INFO_ORDER_SEARCH', - GET_MY_INFO_ORDER_SEARCH_CANCEL: 'GET_MY_INFO_ORDER_SEARCH_CANCEL', - GET_MY_INFO_ORDER_DETAIL_SEARCH: 'GET_MY_INFO_ORDER_DETAIL_SEARCH', - GET_MY_INFO_ORDER_SHIPPING_SEARCH: 'GET_MY_INFO_ORDER_SHIPPING_SEARCH', - CLEAR_MY_INFO_ORDER_SEARCH: 'CLEAR_MY_INFO_ORDER_SEARCH', + SET_PURCHASE_TERMS_AGREE: "SET_PURCHASE_TERMS_AGREE", + SET_PURCHASE_TERMS_WITHDRAW: "SET_PURCHASE_TERMS_WITHDRAW", + GET_MY_INFO_ORDER_SEARCH: "GET_MY_INFO_ORDER_SEARCH", + GET_MY_INFO_ORDER_SEARCH_CANCEL: "GET_MY_INFO_ORDER_SEARCH_CANCEL", + GET_MY_INFO_ORDER_DETAIL_SEARCH: "GET_MY_INFO_ORDER_DETAIL_SEARCH", + GET_MY_INFO_ORDER_SHIPPING_SEARCH: "GET_MY_INFO_ORDER_SHIPPING_SEARCH", + CLEAR_MY_INFO_ORDER_SEARCH: "CLEAR_MY_INFO_ORDER_SEARCH", // play controller - GET_CHAT_LOG: 'GET_CHAT_LOG', - GET_SUBTITLE: 'GET_SUBTITLE', - CLEAR_PLAYER_INFO: 'CLEAR_PLAYER_INFO', - UPDATE_VIDEO_PLAY_STATE: 'UPDATE_VIDEO_PLAY_STATE', + GET_CHAT_LOG: "GET_CHAT_LOG", + GET_SUBTITLE: "GET_SUBTITLE", + CLEAR_PLAYER_INFO: "CLEAR_PLAYER_INFO", + UPDATE_VIDEO_PLAY_STATE: "UPDATE_VIDEO_PLAY_STATE", // 🔽 [추가] 플레이 제어 매니저 액션 타입 /** @@ -226,80 +226,88 @@ export const types = { * SET_PLAYER_CONTROL: 특정 컴포넌트에게 비디오 재생 제어권을 부여합니다. * CLEAR_PLAYER_CONTROL: 컴포넌트로부터 비디오 재생 제어권을 회수합니다. */ - SET_PLAYER_CONTROL: 'SET_PLAYER_CONTROL', - CLEAR_PLAYER_CONTROL: 'CLEAR_PLAYER_CONTROL', + SET_PLAYER_CONTROL: "SET_PLAYER_CONTROL", + CLEAR_PLAYER_CONTROL: "CLEAR_PLAYER_CONTROL", // reset action - RESET_REDUX_STATE: 'RESET_REDUX_STATE', + RESET_REDUX_STATE: "RESET_REDUX_STATE", // cancel actions - GET_MY_INFO_ORDER_CANCEL_SEARCH: 'GET_MY_INFO_ORDER_CANCEL_SEARCH', - GET_MY_INFO_ORDER_CANCEL_COLUMNS_SEARCH: 'GET_MY_INFO_ORDER_CANCEL_COLUMNS_SEARCH', - UPDATE_ORDER_PARTIAL_CANCEL: 'UPDATE_ORDER_PARTIAL_CANCEL', - PAYMENT_TOTAL_CANCEL: 'PAYMENT_TOTAL_CANCEL', + GET_MY_INFO_ORDER_CANCEL_SEARCH: "GET_MY_INFO_ORDER_CANCEL_SEARCH", + GET_MY_INFO_ORDER_CANCEL_COLUMNS_SEARCH: + "GET_MY_INFO_ORDER_CANCEL_COLUMNS_SEARCH", + UPDATE_ORDER_PARTIAL_CANCEL: "UPDATE_ORDER_PARTIAL_CANCEL", + PAYMENT_TOTAL_CANCEL: "PAYMENT_TOTAL_CANCEL", // emp actions - GET_SHOPTIME_TERMS: 'GET_SHOPTIME_TERMS', + GET_SHOPTIME_TERMS: "GET_SHOPTIME_TERMS", // pinCode actions - GET_MY_INFO_CARD_PINCODE_CHECK: 'GET_MY_INFO_CARD_PINCODE_CHECK', + GET_MY_INFO_CARD_PINCODE_CHECK: "GET_MY_INFO_CARD_PINCODE_CHECK", // new actions - CANCEL_FOCUS_ELEMENT: 'CANCEL_FOCUS_ELEMENT', + CANCEL_FOCUS_ELEMENT: "CANCEL_FOCUS_ELEMENT", // 약관동의 여부 확인 상태 - GET_TERMS_AGREE_YN_START: 'GET_TERMS_AGREE_YN_START', - GET_TERMS_AGREE_YN_SUCCESS: 'GET_TERMS_AGREE_YN_SUCCESS', - GET_TERMS_AGREE_YN_FAILURE: 'GET_TERMS_AGREE_YN_FAILURE', + GET_TERMS_AGREE_YN_START: "GET_TERMS_AGREE_YN_START", + GET_TERMS_AGREE_YN_SUCCESS: "GET_TERMS_AGREE_YN_SUCCESS", + GET_TERMS_AGREE_YN_FAILURE: "GET_TERMS_AGREE_YN_FAILURE", // device - REQ_REG_DEVICE_INFO: 'REQ_REG_DEVICE_INFO', + REQ_REG_DEVICE_INFO: "REQ_REG_DEVICE_INFO", // 🔽 [추가] 영구재생 비디오 정보 저장 - SET_PERSISTENT_VIDEO_INFO: 'SET_PERSISTENT_VIDEO_INFO', + SET_PERSISTENT_VIDEO_INFO: "SET_PERSISTENT_VIDEO_INFO", // 🔽 [추가] 배너 비디오 제어 액션 타입 /** * HomeBanner의 배너 간 비디오 재생 제어를 위한 액션 타입들. * 첫 번째 배너 상시 재생과 두 번째 배너 포커스 재생을 관리합니다. */ - SET_BANNER_STATE: 'SET_BANNER_STATE', - SET_BANNER_FOCUS: 'SET_BANNER_FOCUS', - SET_BANNER_AVAILABILITY: 'SET_BANNER_AVAILABILITY', - SET_BANNER_TRANSITION: 'SET_BANNER_TRANSITION', - PAUSE_PLAYER_CONTROL: 'PAUSE_PLAYER_CONTROL', - RESUME_PLAYER_CONTROL: 'RESUME_PLAYER_CONTROL', + SET_BANNER_STATE: "SET_BANNER_STATE", + SET_BANNER_FOCUS: "SET_BANNER_FOCUS", + SET_BANNER_AVAILABILITY: "SET_BANNER_AVAILABILITY", + SET_BANNER_TRANSITION: "SET_BANNER_TRANSITION", + PAUSE_PLAYER_CONTROL: "PAUSE_PLAYER_CONTROL", + RESUME_PLAYER_CONTROL: "RESUME_PLAYER_CONTROL", // 🔽 [추가] HomeBanner 동영상 포커스 정책 관리 - SET_CURRENT_FOCUS_BANNER: 'SET_CURRENT_FOCUS_BANNER', - UPDATE_VIDEO_POLICY: 'UPDATE_VIDEO_POLICY', - SET_MODAL_BORDER: 'SET_MODAL_BORDER', - SET_BANNER_VISIBILITY: 'SET_BANNER_VISIBILITY', + SET_CURRENT_FOCUS_BANNER: "SET_CURRENT_FOCUS_BANNER", + UPDATE_VIDEO_POLICY: "UPDATE_VIDEO_POLICY", + SET_MODAL_BORDER: "SET_MODAL_BORDER", + SET_BANNER_VISIBILITY: "SET_BANNER_VISIBILITY", // 🔽 [추가] JustForYou 상품 관리 부분 - GET_RECENTLY_SAW_ITEM: 'GET_RECENTLY_SAW_ITEM', - GET_LIKE_BRAND_PRODUCT: 'GET_LIKE_BRAND_PRODUCT', - GET_MORE_TO_CONCIDER_AT_THIS_PRICE: 'GET_MORE_TO_CONCIDER_AT_THIS_PRICE', + GET_RECENTLY_SAW_ITEM: "GET_RECENTLY_SAW_ITEM", + GET_LIKE_BRAND_PRODUCT: "GET_LIKE_BRAND_PRODUCT", + GET_MORE_TO_CONCIDER_AT_THIS_PRICE: "GET_MORE_TO_CONCIDER_AT_THIS_PRICE", + GET_JUSTFORYOU_INFO: "GET_JUSTFORYOU_INFO", // 🔽 Voice Conductor 관련 액션 타입 - VOICE_REGISTER_SUCCESS: 'VOICE_REGISTER_SUCCESS', - VOICE_REGISTER_FAILURE: 'VOICE_REGISTER_FAILURE', - VOICE_SET_TICKET: 'VOICE_SET_TICKET', - VOICE_SET_CONTEXT_SUCCESS: 'VOICE_SET_CONTEXT_SUCCESS', - VOICE_SET_CONTEXT_FAILURE: 'VOICE_SET_CONTEXT_FAILURE', - VOICE_PERFORM_ACTION: 'VOICE_PERFORM_ACTION', - VOICE_REPORT_RESULT_SUCCESS: 'VOICE_REPORT_RESULT_SUCCESS', - VOICE_REPORT_RESULT_FAILURE: 'VOICE_REPORT_RESULT_FAILURE', - VOICE_UPDATE_INTENTS: 'VOICE_UPDATE_INTENTS', - VOICE_CLEAR_STATE: 'VOICE_CLEAR_STATE', - VOICE_ADD_LOG: 'VOICE_ADD_LOG', - VOICE_CLEAR_LOGS: 'VOICE_CLEAR_LOGS', - VOICE_STT_TEXT_RECEIVED: 'VOICE_STT_TEXT_RECEIVED', // STT 텍스트 수신 + VOICE_REGISTER_SUCCESS: "VOICE_REGISTER_SUCCESS", + VOICE_REGISTER_FAILURE: "VOICE_REGISTER_FAILURE", + VOICE_SET_TICKET: "VOICE_SET_TICKET", + VOICE_SET_CONTEXT_SUCCESS: "VOICE_SET_CONTEXT_SUCCESS", + VOICE_SET_CONTEXT_FAILURE: "VOICE_SET_CONTEXT_FAILURE", + VOICE_PERFORM_ACTION: "VOICE_PERFORM_ACTION", + VOICE_REPORT_RESULT_SUCCESS: "VOICE_REPORT_RESULT_SUCCESS", + VOICE_REPORT_RESULT_FAILURE: "VOICE_REPORT_RESULT_FAILURE", + VOICE_UPDATE_INTENTS: "VOICE_UPDATE_INTENTS", + VOICE_CLEAR_STATE: "VOICE_CLEAR_STATE", + VOICE_ADD_LOG: "VOICE_ADD_LOG", + VOICE_CLEAR_LOGS: "VOICE_CLEAR_LOGS", + VOICE_STT_TEXT_RECEIVED: "VOICE_STT_TEXT_RECEIVED", // STT 텍스트 수신 // 🔽 Web Speech API 관련 - WEB_SPEECH_INITIALIZED: 'WEB_SPEECH_INITIALIZED', - WEB_SPEECH_START: 'WEB_SPEECH_START', - WEB_SPEECH_INTERIM_RESULT: 'WEB_SPEECH_INTERIM_RESULT', - WEB_SPEECH_END: 'WEB_SPEECH_END', - WEB_SPEECH_ERROR: 'WEB_SPEECH_ERROR', - WEB_SPEECH_CLEANUP: 'WEB_SPEECH_CLEANUP', + WEB_SPEECH_INITIALIZED: "WEB_SPEECH_INITIALIZED", + WEB_SPEECH_START: "WEB_SPEECH_START", + WEB_SPEECH_INTERIM_RESULT: "WEB_SPEECH_INTERIM_RESULT", + WEB_SPEECH_END: "WEB_SPEECH_END", + WEB_SPEECH_ERROR: "WEB_SPEECH_ERROR", + WEB_SPEECH_CLEANUP: "WEB_SPEECH_CLEANUP", + + //convert img + CONVERT_PDF_TO_IMAGE: "CONVERT_PDF_TO_IMAGE", + CONVERT_PDF_TO_IMAGE_SUCCESS: "CONVERT_PDF_TO_IMAGE_SUCCESS", + CONVERT_PDF_TO_IMAGE_FAILURE: "CONVERT_PDF_TO_IMAGE_FAILURE", + CLEAR_CONVERTED_IMAGE: "CLEAR_CONVERTED_IMAGE", }; diff --git a/com.twin.app.shoptime/src/actions/convertActions.js b/com.twin.app.shoptime/src/actions/convertActions.js new file mode 100644 index 00000000..650a4d3d --- /dev/null +++ b/com.twin.app.shoptime/src/actions/convertActions.js @@ -0,0 +1,72 @@ +import { URLS } from '../api/apiConfig'; +import { TAxios } from '../api/TAxios'; +import { get } from '../utils/fp'; +import { types } from './actionTypes'; +import { changeAppStatus } from './commonActions'; + +/** + * PDF를 이미지로 변환하는 액션 + * @param {string} pdfUrl - 변환할 PDF URL + * @param {function} callback - 성공/실패 후 실행할 콜백 함수 + */ +export const convertPdfToImage = (pdfUrl, callback) => (dispatch, getState) => { + // 로딩 시작 + dispatch(changeAppStatus({ showLoadingPanel: { show: true } })); + + const onSuccess = (response) => { + const blob = new Blob([response.data], { type: "image/png;charset=UTF-8" }); + const imageUrl = URL.createObjectURL(blob); + console.log("convertPdfToImage onSuccess", response.data); + console.log("imageUrl onSuccess", imageUrl); + // const imageData = get("data.data", imageUrl); + + dispatch({ + type: types.CONVERT_PDF_TO_IMAGE_SUCCESS, + // payload: imageData, + payload: imageUrl, + }); + + dispatch(changeAppStatus({ showLoadingPanel: { show: false } })); + + // 콜백이 있으면 변환된 이미지 데이터와 함께 호출 + // callback && callback(null, imageData); + callback && callback(null, imageUrl); + }; + + const onFail = (error) => { + console.error("convertPdfToImage onFail", error); + + dispatch({ + type: types.CONVERT_PDF_TO_IMAGE_FAILURE, + payload: error, + }); + + dispatch(changeAppStatus({ showLoadingPanel: { show: false } })); + + // 콜백이 있으면 에러와 함께 호출 + callback && callback(error, null); + }; + + // API 요청 파라미터 + const params = { + pdfUrl: pdfUrl, + }; + + TAxios( + dispatch, + getState, + "post", + URLS.CONVERT_IMG, + {}, + params, + onSuccess, + onFail + ); +}; + +/** + * 변환된 이미지 데이터를 초기화하는 액션 + */ +export const clearConvertedImage = () => ({ + type: types.CLEAR_CONVERTED_IMAGE, +}); diff --git a/com.twin.app.shoptime/src/actions/forYouActions.js b/com.twin.app.shoptime/src/actions/forYouActions.js index 790bb825..5844d7df 100644 --- a/com.twin.app.shoptime/src/actions/forYouActions.js +++ b/com.twin.app.shoptime/src/actions/forYouActions.js @@ -1,4 +1,12 @@ +import { URLS } from '../api/apiConfig'; +import { TAxios } from '../api/TAxios'; +import { + curry, + get, + set, +} from '../utils/fp'; import { types } from './actionTypes'; +import { changeAppStatus } from './commonActions'; // 최근 본 아이템 관련 액션 export const getRecentlySawItem = (data) => ({ @@ -17,3 +25,32 @@ export const getMoreToConciderAtThisPrice = (data) => ({ type: types.GET_MORE_TO_CONCIDER_AT_THIS_PRICE, payload: data, }); + +export const getJustForYouInfo = (callback) => (dispatch, getState) => { + const onSuccess = (response) => { + console.log("getJustForYouInfo onSuccess", response.data); + dispatch({ + type: types.GET_JUSTFORYOU_INFO, + payload: get("data.data", response), + }); + dispatch(changeAppStatus({ showLoadingPanel: { show: false } })); + callback && callback(); + }; + + const onFail = (error) => { + console.error("getJustForYouInfo onFail", error); + dispatch(changeAppStatus({ showLoadingPanel: { show: false } })); + callback && callback(); + }; + + TAxios( + dispatch, + getState, + "get", + URLS.GET_JUSTFORYOU_INFO, + {}, + {}, + onSuccess, + onFail + ); +}; diff --git a/com.twin.app.shoptime/src/api/apiConfig.js b/com.twin.app.shoptime/src/api/apiConfig.js index 64ee9f85..1d090436 100644 --- a/com.twin.app.shoptime/src/api/apiConfig.js +++ b/com.twin.app.shoptime/src/api/apiConfig.js @@ -1,223 +1,232 @@ // export const SHOPTIME_BASE_URL = "https://qt2-aic.lgshopsvc.lgappstv.com/"; -export const SHOPTIME_BASE_URL = '.lgshopsvc.lgappstv.com'; +export const SHOPTIME_BASE_URL = ".lgshopsvc.lgappstv.com"; export const URLS = { //device controller - GET_AUTHENTICATION_CODE: '/lgsp/v1/device/auth.lge', - GET_RE_AUTHENTICATION_CODE: '/lgsp/v1/device/reauth.lge', - GET_DEVICE_ADDITION_INFO: '/lgsp/v1/device/info/addition.lge', - DELETE_DEVICE_ADDITION_INFO: '/lgsp/v1/device/info/addition/delete.lge', - DELETE_DEVICE_PAIRING: '/lgsp/v1/device/pairing/delete.lge', - REGISTER_DEVICE_PAIRING: '/lgsp/v1/device/pairing/register.lge', - REGISTER_DEVICE: '/lgsp/v1/device/register.lge', - REGISTER_DEVICE_INFO: '/lgsp/v1/device/register/info.lge', - GET_DEVICE_INFO: '/lgsp/v1/device/info/addition.lge', + GET_AUTHENTICATION_CODE: "/lgsp/v1/device/auth.lge", + GET_RE_AUTHENTICATION_CODE: "/lgsp/v1/device/reauth.lge", + GET_DEVICE_ADDITION_INFO: "/lgsp/v1/device/info/addition.lge", + DELETE_DEVICE_ADDITION_INFO: "/lgsp/v1/device/info/addition/delete.lge", + DELETE_DEVICE_PAIRING: "/lgsp/v1/device/pairing/delete.lge", + REGISTER_DEVICE_PAIRING: "/lgsp/v1/device/pairing/register.lge", + REGISTER_DEVICE: "/lgsp/v1/device/register.lge", + REGISTER_DEVICE_INFO: "/lgsp/v1/device/register/info.lge", + GET_DEVICE_INFO: "/lgsp/v1/device/info/addition.lge", // billing controller - GET_MY_INFO_BILLING_SEARCH: '/lgsp/v1/myinfo/address/billing/search.lge', + GET_MY_INFO_BILLING_SEARCH: "/lgsp/v1/myinfo/address/billing/search.lge", // card controller - GET_MY_INFO_CARD_SEARCH: '/lgsp/v1/myinfo/card/search.lge', + GET_MY_INFO_CARD_SEARCH: "/lgsp/v1/myinfo/card/search.lge", // cart controller - GET_MY_INFO_CART_SEARCH: '/lgsp/v1/myinfo/cart/search.lge', - ADD_TO_CART: '/lgsp/v1/myinfo/cart/add.lge', - REMOVE_FROM_CART: '/lgsp/v1/myinfo/cart/remove.lge', - UPDATE_CART_ITEM: '/lgsp/v1/myinfo/cart/update.lge', + GET_MY_INFO_CART_SEARCH: "/lgsp/v1/myinfo/cart/search.lge", + ADD_TO_CART: "/lgsp/v1/myinfo/cart/add.lge", + REMOVE_FROM_CART: "/lgsp/v1/myinfo/cart/remove.lge", + UPDATE_CART_ITEM: "/lgsp/v1/myinfo/cart/update.lge", // shipping controller - GET_MY_INFO_SHIPPING_SEARCH: '/lgsp/v1/myinfo/address/shipping/search.lge', + GET_MY_INFO_SHIPPING_SEARCH: "/lgsp/v1/myinfo/address/shipping/search.lge", //home controller - GET_HOME_TERMS: '/lgsp/v1/home/terms.lge', - GET_HOME_MENU: '/lgsp/v1/home/menu.lge', - GET_HOME_LAYOUT: '/lgsp/v1/home/homeLayout.lge', - GET_HOME_MAIN_CONTENTS: '/lgsp/v1/home/homeContentsInfo.lge', - GET_THEME_CURATION_INFO: '/lgsp/v2/home/theme/curations.lge', - GET_THEME_CURATION_DETAIL_INFO: '/lgsp/v1/home/theme/curation/detail.lge', - GET_THEME_HOTEL_DETAIL_INFO: '/lgsp/v1/home/theme/hotel/detail.lge', - GET_THEME_MENU_SHELF_INFO: '/lgsp/v1/home/theme/menu/shelf/info.lge', + GET_HOME_TERMS: "/lgsp/v1/home/terms.lge", + GET_HOME_MENU: "/lgsp/v1/home/menu.lge", + GET_HOME_LAYOUT: "/lgsp/v1/home/homeLayout.lge", + GET_HOME_MAIN_CONTENTS: "/lgsp/v1/home/homeContentsInfo.lge", + GET_THEME_CURATION_INFO: "/lgsp/v2/home/theme/curations.lge", + GET_THEME_CURATION_DETAIL_INFO: "/lgsp/v1/home/theme/curation/detail.lge", + GET_THEME_HOTEL_DETAIL_INFO: "/lgsp/v1/home/theme/hotel/detail.lge", + GET_THEME_MENU_SHELF_INFO: "/lgsp/v1/home/theme/menu/shelf/info.lge", //brand-controller - GET_BRAND_LIST: '/lgsp/v1/brand/info.lge', - GET_BRAND_LAYOUT_INFO: '/lgsp/v1/brand/shelf.lge', - GET_BRAND_LIVE_CHANNEL_INFO: '/lgsp/v1/brand/live.lge', - GET_BRAND_TSV_INFO: '/lgsp/v1/brand/tsv.lge', - GET_BRAND_RECOMMENDED_SHOW_INFO: '/lgsp/v1/brand/recommend.lge', - GET_BRAND_SERIES_INFO: '/lgsp/v1/brand/series.lge', - GET_BRAND_CATEGORY_INFO: '/lgsp/v1/brand/category.lge', - GET_BRAND_BEST_SELLER: '/lgsp/v1/brand/bestSeller.lge', - GET_BRAND_CREATORS_INFO: '/lgsp/v1/brand/creators.lge', - GET_BRAND_SHOWROOM: '/lgsp/v1/brand/showroom.lge', - GET_BRAND_RECENTLY_AIRED: '/lgsp/v1/brand/recently/aired.lge', + GET_BRAND_LIST: "/lgsp/v1/brand/info.lge", + GET_BRAND_LAYOUT_INFO: "/lgsp/v1/brand/shelf.lge", + GET_BRAND_LIVE_CHANNEL_INFO: "/lgsp/v1/brand/live.lge", + GET_BRAND_TSV_INFO: "/lgsp/v1/brand/tsv.lge", + GET_BRAND_RECOMMENDED_SHOW_INFO: "/lgsp/v1/brand/recommend.lge", + GET_BRAND_SERIES_INFO: "/lgsp/v1/brand/series.lge", + GET_BRAND_CATEGORY_INFO: "/lgsp/v1/brand/category.lge", + GET_BRAND_BEST_SELLER: "/lgsp/v1/brand/bestSeller.lge", + GET_BRAND_CREATORS_INFO: "/lgsp/v1/brand/creators.lge", + GET_BRAND_SHOWROOM: "/lgsp/v1/brand/showroom.lge", + GET_BRAND_RECENTLY_AIRED: "/lgsp/v1/brand/recently/aired.lge", //on-sale controller - GET_ON_SALE_INFO: '/lgsp/v1/onsale/onsale.lge', + GET_ON_SALE_INFO: "/lgsp/v1/onsale/onsale.lge", //product controller - GET_PRODUCT_BESTSELLER: '/lgsp/v1/product/bestSeller.lge', - GET_PRODUCT_GROUP: '/lgsp/v1/product/group.lge', - GET_PRODUCT_OPTION: '/lgsp/v1/product/option.lge', - GET_USER_REVEIW: '/lgsp/v1/product/reviews.lge', + GET_PRODUCT_BESTSELLER: "/lgsp/v1/product/bestSeller.lge", + GET_PRODUCT_GROUP: "/lgsp/v1/product/group.lge", + GET_PRODUCT_OPTION: "/lgsp/v1/product/option.lge", + GET_USER_REVEIW: "/lgsp/v1/product/reviews.lge", //my-page controller - GET_MY_RECOMMANDED_KEYWORD: '/lgsp/v1/mypage/reckeyword.lge', - GET_MY_FAQ_INFO: '/lgsp/v1/mypage/support/faq.lge', - GET_NOTICE: '/lgsp/v1/mypage/support/notice.lge', - GET_MY_CUSTOMERS: '/lgsp/v1/mypage/customers.lge', - GET_MY_FAVORITE: '/lgsp/v1/mypage/favorite.lge', - DELETE_MY_FAVORITE: '/lgsp/v1/mypage/favorite.lge', - GET_MY_FAVORITE_FLAG: '/lgsp/v1/mypage/favorite/flag.lge', - SET_MY_TERMS_WITHDRAW: '/lgsp/v1/mypage/terms/withdraw.lge', - GET_MY_UPCOMING_CHANGE_INFO: '/lgsp/v1/mypage/upcoming/alert/changeinfo.lge', - GET_MY_UPCOMING_ALERT_SHOW: '/lgsp/v1/mypage/upcoming/alert/show.lge', - DELETE_MY_UPCOMING_ALERT_SHOW: '/lgsp/v1/mypage/upcoming/alert/show.lge', - GET_MY_UPCOMING_ALERT_SHOW_KEYS: '/lgsp/v1/mypage/upcoming/alert/show/keys.lge', - SET_MY_UPCOMING_USE_ALERT: '/lgsp/v1/mypage/upcoming/alert/use.lge', - GET_UPCOMING_ALERT_SHOW_CHANGE_INFO: '/lgsp/v1/mypage/upcoming/show/changeinfo.lge', - GET_MY_RECENTLY_VIEWED_INFO: '/lgsp/v1/mypage/recently/viewed.lge', + GET_MY_RECOMMANDED_KEYWORD: "/lgsp/v1/mypage/reckeyword.lge", + GET_MY_FAQ_INFO: "/lgsp/v1/mypage/support/faq.lge", + GET_NOTICE: "/lgsp/v1/mypage/support/notice.lge", + GET_MY_CUSTOMERS: "/lgsp/v1/mypage/customers.lge", + GET_MY_FAVORITE: "/lgsp/v1/mypage/favorite.lge", + DELETE_MY_FAVORITE: "/lgsp/v1/mypage/favorite.lge", + GET_MY_FAVORITE_FLAG: "/lgsp/v1/mypage/favorite/flag.lge", + SET_MY_TERMS_WITHDRAW: "/lgsp/v1/mypage/terms/withdraw.lge", + GET_MY_UPCOMING_CHANGE_INFO: "/lgsp/v1/mypage/upcoming/alert/changeinfo.lge", + GET_MY_UPCOMING_ALERT_SHOW: "/lgsp/v1/mypage/upcoming/alert/show.lge", + DELETE_MY_UPCOMING_ALERT_SHOW: "/lgsp/v1/mypage/upcoming/alert/show.lge", + GET_MY_UPCOMING_ALERT_SHOW_KEYS: + "/lgsp/v1/mypage/upcoming/alert/show/keys.lge", + SET_MY_UPCOMING_USE_ALERT: "/lgsp/v1/mypage/upcoming/alert/use.lge", + GET_UPCOMING_ALERT_SHOW_CHANGE_INFO: + "/lgsp/v1/mypage/upcoming/show/changeinfo.lge", + GET_MY_RECENTLY_VIEWED_INFO: "/lgsp/v1/mypage/recently/viewed.lge", //search controller - GET_SEARCH: '/lgsp/v1/search/list.lge', + GET_SEARCH: "/lgsp/v1/search/list.lge", // IF-LGSP-098 ShopperHouse검색조회 - GET_SHOPPERHOUSE_SEARCH: '/lgsp/v1/search/shopperhouse/list.lge', + GET_SHOPPERHOUSE_SEARCH: "/lgsp/v1/search/shopperhouse/list.lge", //main controller - GET_SUB_CATEGORY: '/lgsp/v1/main/subcategory.lge', - GET_TOP20_SHOW: '/lgsp/v1/main/top/show.lge', - GET_PRODUCT_DETAIL: '/lgsp/v1/main/category/product/detail.lge', - GET_YOUMAYLIKE: '/lgsp/v1/main/youmaylike.lge', - GET_HOME_FULL_VIDEO_INFO: '/lgsp/v1/main/homeFullVideoInfo.lge', - SET_MAIN_LIKE_CATEGORY: '/lgsp/v1/main/category/like.lge', - SET_MAIN_LIVE_UPCOMING_ALARM: '/lgsp/v1/main/live/upcoming/alarm.lge', - GET_MAIN_LIVE_SHOW_NOW_PRODUCT: '/lgsp/v1/main/live/show/nowproduct.lge', - GET_MAIN_CATEGORY_SHOW_DETAIL: '/lgsp/v1/main/category/show/detail.lge', - GET_MAIN_LIVE_SHOW: '/lgsp/v1/main/live/show.lge', + GET_SUB_CATEGORY: "/lgsp/v1/main/subcategory.lge", + GET_TOP20_SHOW: "/lgsp/v1/main/top/show.lge", + GET_PRODUCT_DETAIL: "/lgsp/v1/main/category/product/detail.lge", + GET_YOUMAYLIKE: "/lgsp/v1/main/youmaylike.lge", + GET_HOME_FULL_VIDEO_INFO: "/lgsp/v1/main/homeFullVideoInfo.lge", + SET_MAIN_LIKE_CATEGORY: "/lgsp/v1/main/category/like.lge", + SET_MAIN_LIVE_UPCOMING_ALARM: "/lgsp/v1/main/live/upcoming/alarm.lge", + GET_MAIN_LIVE_SHOW_NOW_PRODUCT: "/lgsp/v1/main/live/show/nowproduct.lge", + GET_MAIN_CATEGORY_SHOW_DETAIL: "/lgsp/v1/main/category/show/detail.lge", + GET_MAIN_LIVE_SHOW: "/lgsp/v1/main/live/show.lge", //event controller - GET_WELCOME_EVENT_INFO: '/lgsp/v1/event/event.lge', - GET_EVENT_ISSUED_STATUS: '/lgsp/v1/event/issued/status.lge', - SET_EVENT_ISSUE_REQ: '/lgsp/v1/event/issued.lge', - SET_EVENT_POP_CLICK_INFO: '/lgsp/v1/event/popup/click.lge', + GET_WELCOME_EVENT_INFO: "/lgsp/v1/event/event.lge", + GET_EVENT_ISSUED_STATUS: "/lgsp/v1/event/issued/status.lge", + SET_EVENT_ISSUE_REQ: "/lgsp/v1/event/issued.lge", + SET_EVENT_POP_CLICK_INFO: "/lgsp/v1/event/popup/click.lge", // coupon actions - GET_PRODUCT_COUPON_INFO: '/lgsp/v1/product/coupon/info.lge', - GET_PRODUCT_COUPON_SEARCH: '/lgsp/v1/product/coupon/search.lge', - GET_PRODUCT_COUPON_DOWNLOAD: '/lgsp/v1/product/coupon/download.lge', - GET_PRODUCT_COUPON_TOTDOWNLOAD: '/lgsp/v1/product/coupon/totDownload.lge', + GET_PRODUCT_COUPON_INFO: "/lgsp/v1/product/coupon/info.lge", + GET_PRODUCT_COUPON_SEARCH: "/lgsp/v1/product/coupon/search.lge", + GET_PRODUCT_COUPON_DOWNLOAD: "/lgsp/v1/product/coupon/download.lge", + GET_PRODUCT_COUPON_TOTDOWNLOAD: "/lgsp/v1/product/coupon/totDownload.lge", //checkout controller - GET_CHECKOUT_INFO: '/lgsp/v1/myinfo/checkout/info.lge', - INSERT_MY_INFO_CHECKOUT_ORDER: '/lgsp/v1/myinfo/checkout/order.lge', - GET_TAX_INFOS: '/lgsp/v1/myinfo/checkout/taxInfo.lge', - GET_CHECKOUT_TOTAL_AMT: '/lgsp/v1/myinfo/checkout/totalAmt.lge', + GET_CHECKOUT_INFO: "/lgsp/v1/myinfo/checkout/info.lge", + INSERT_MY_INFO_CHECKOUT_ORDER: "/lgsp/v1/myinfo/checkout/order.lge", + GET_TAX_INFOS: "/lgsp/v1/myinfo/checkout/taxInfo.lge", + GET_CHECKOUT_TOTAL_AMT: "/lgsp/v1/myinfo/checkout/totalAmt.lge", // app controller - SEND_SMS: '/lgsp/v1/app/sms.lge', + SEND_SMS: "/lgsp/v1/app/sms.lge", // play controller - CHAT_LOG: '/lgsp/v1/play/vod/chatLog.lge', - SUBTITLE: '/lgsp/v1/play/vod/subtitle.lge', + CHAT_LOG: "/lgsp/v1/play/vod/chatLog.lge", + SUBTITLE: "/lgsp/v1/play/vod/subtitle.lge", // order controller - SET_PURCHASE_TERMS_AGREE: '/lgsp/v1/myinfo/purchaseTerms/agree.lge', - SET_PURCHASE_TERMS_WITHDRAW: '/lgsp/v1/myinfo/purchaseTerms/withdraw.lge', - GET_MY_INFO_ORDER_SEARCH: '/lgsp/v1/myinfo/order/info.lge', - GET_MY_INFO_ORDER_DETAIL_SEARCH: '/lgsp/v1/myinfo/order/detail.lge', - GET_MY_INFO_ORDER_SHIPPING_SEARCH: '/lgsp/v1/myinfo/order/shipping.lge', + SET_PURCHASE_TERMS_AGREE: "/lgsp/v1/myinfo/purchaseTerms/agree.lge", + SET_PURCHASE_TERMS_WITHDRAW: "/lgsp/v1/myinfo/purchaseTerms/withdraw.lge", + GET_MY_INFO_ORDER_SEARCH: "/lgsp/v1/myinfo/order/info.lge", + GET_MY_INFO_ORDER_DETAIL_SEARCH: "/lgsp/v1/myinfo/order/detail.lge", + GET_MY_INFO_ORDER_SHIPPING_SEARCH: "/lgsp/v1/myinfo/order/shipping.lge", // cancel controller - GET_MY_INFO_ORDER_CANCEL_SEARCH: '/lgsp/v1/myinfo/order/cancel/info.lge', - GET_MY_INFO_ORDER_CANCEL_COLUMNS_SEARCH: '/lgsp/v1/myinfo/order/cancel/reasoninfo.lge', - UPDATE_ORDER_PARTIAL_CANCEL: '/lgsp/v1/myinfo/order/orderPartialCancel.lge', - PAYMENT_TOTAL_CANCEL: '/lgsp/v1/myinfo/order/paymentTotalCancel.lge', + GET_MY_INFO_ORDER_CANCEL_SEARCH: "/lgsp/v1/myinfo/order/cancel/info.lge", + GET_MY_INFO_ORDER_CANCEL_COLUMNS_SEARCH: + "/lgsp/v1/myinfo/order/cancel/reasoninfo.lge", + UPDATE_ORDER_PARTIAL_CANCEL: "/lgsp/v1/myinfo/order/orderPartialCancel.lge", + PAYMENT_TOTAL_CANCEL: "/lgsp/v1/myinfo/order/paymentTotalCancel.lge", + + // foryou controller + GET_JUSTFORYOU_INFO: "/lgsp/v1/justforyou/list.lge", // emp controller - GET_SHOPTIME_TERMS: '/lgsp/v1/emp/shoptime/terms.lge', - SET_MYPAGE_TERMS_AGREE: '/lgsp/v1/mypage/terms/agree.lge', + GET_SHOPTIME_TERMS: "/lgsp/v1/emp/shoptime/terms.lge", + SET_MYPAGE_TERMS_AGREE: "/lgsp/v1/mypage/terms/agree.lge", // pinCode controller - GET_MY_INFO_CARD_PINCODE_CHECK: '/lgsp/v1/myinfo/card/pincode/check.lge', + GET_MY_INFO_CARD_PINCODE_CHECK: "/lgsp/v1/myinfo/card/pincode/check.lge", + + // img convert + CONVERT_IMG: "/lgsp/v1/convert/file/pdf2image.lge", // log deeplink controller - LOG_DEEPLINK: '/lgsp/v1/log/deeplink.lge', + LOG_DEEPLINK: "/lgsp/v1/log/deeplink.lge", // IF-LGSP-LOG-001 log live controller - LOG_LIVE: '/lgsp/v1/log/live.lge', + LOG_LIVE: "/lgsp/v1/log/live.lge", // IF-LGSP-LOG-002 log vod controller - LOG_VOD: '/lgsp/v1/log/vod.lge', + LOG_VOD: "/lgsp/v1/log/vod.lge", // IF-LGSP-LOG-003 log curation controller - LOG_CURATION: '/lgsp/v1/log/curation.lge', + LOG_CURATION: "/lgsp/v1/log/curation.lge", // IF-LGSP-LOG-004 log second layer controller - LOG_SECOND_LAYER: '/lgsp/v1/log/secondlayer.lge', + LOG_SECOND_LAYER: "/lgsp/v1/log/secondlayer.lge", // IF-LGSP-LOG-005 log gnb controller - LOG_GNB: '/lgsp/v1/log/gnb.lge', + LOG_GNB: "/lgsp/v1/log/gnb.lge", // IF-LGSP-LOG-006 log product controller - LOG_PRODUCT: '/lgsp/v1/log/product.lge', + LOG_PRODUCT: "/lgsp/v1/log/product.lge", // IF-LGSP-LOG-007 log detail controller - LOG_DETAIL: '/lgsp/v1/log/detail.lge', + LOG_DETAIL: "/lgsp/v1/log/detail.lge", // IF-LGSP-LOG-008 log shop by mobile controller - LOG_SHOP_BY_MOBILE: '/lgsp/v1/log/shopbymobile.lge', + LOG_SHOP_BY_MOBILE: "/lgsp/v1/log/shopbymobile.lge", // IF-LGSP-LOG-009 log partners controller - LOG_PARTNERS: '/lgsp/v1/log/partners.lge', + LOG_PARTNERS: "/lgsp/v1/log/partners.lge", // IF-LGSP-LOG-010 log alert flag controller - LOG_MY_PAGE_ALERT_FLAG: '/lgsp/v1/log/mypage/alertflag.lge', + LOG_MY_PAGE_ALERT_FLAG: "/lgsp/v1/log/mypage/alertflag.lge", // IF-LGSP-LOG-011 log my delete controller - LOG_MY_PAGE_MY_DELETE: '/lgsp/v1/log/mypage/mydelete.lge', + LOG_MY_PAGE_MY_DELETE: "/lgsp/v1/log/mypage/mydelete.lge", // IF-LGSP-LOG-012 log notive controller - LOG_MY_PAGE_NOTICE: '/lgsp/v1/log/mypage/notice.lge', + LOG_MY_PAGE_NOTICE: "/lgsp/v1/log/mypage/notice.lge", // IF-LGSP-LOG-013 log search controller - LOG_SEARCH: '/lgsp/v1/log/search/search.lge', + LOG_SEARCH: "/lgsp/v1/log/search/search.lge", // IF-LGSP-LOG-014 log search click controller - LOG_SEARCH_CLICK: '/lgsp/v1/log/search/click.lge', + LOG_SEARCH_CLICK: "/lgsp/v1/log/search/click.lge", // IF-LGSP-LOG-015 log upcoming flag controller - LOG_UPCOMING_FLAG: '/lgsp/v1/log/upcoming/upcomingflag.lge', + LOG_UPCOMING_FLAG: "/lgsp/v1/log/upcoming/upcomingflag.lge", // IF-LGSP-LOG-016 log keyword flag controller, 미사용 // LOG_KEYWORD_FLAG: "/lgsp/v1/log/upcoming/keywordflag.lge", // IF-LGSP-LOG-017 log alarm pop controller - LOG_ALARM_POP: '/lgsp/v1/log/alarm/alarmpop.lge', + LOG_ALARM_POP: "/lgsp/v1/log/alarm/alarmpop.lge", // IF-LGSP-LOG-018 log alarm click controller - LOG_ALARM_CLICK: '/lgsp/v1/log/alarm/alarmclick.lge', + LOG_ALARM_CLICK: "/lgsp/v1/log/alarm/alarmclick.lge", // IF-LGSP-LOG-019 검증 필요 - LOG_PURCHASE_TRACKING: '/lgsp/v1/log/purchase/tracking.lge', + LOG_PURCHASE_TRACKING: "/lgsp/v1/log/purchase/tracking.lge", // IF-LGSP-LOG-020 log theme product controller - LOG_THEME_PRODUCT: '/lgsp/v1/log/theme/product.lge', + LOG_THEME_PRODUCT: "/lgsp/v1/log/theme/product.lge", // IF-LGSP-LOG-100 log top contents controller - LOG_TOP_CONTENTS: '/lgsp/v1/log/topcontents.lge', + LOG_TOP_CONTENTS: "/lgsp/v1/log/topcontents.lge", // IF-LGSP-LOG-101 log tearms controller - LOG_TERMS: '/lgsp/v1/log/terms.lge', + LOG_TERMS: "/lgsp/v1/log/terms.lge", // IF-LGSP-LOG-102 log login controller - LOG_ACCOUNT_LOGIN: '/lgsp/v1/log/account/login.lge', + LOG_ACCOUNT_LOGIN: "/lgsp/v1/log/account/login.lge", // IF-LGSP-LOG-103 log order btn click controller - LOG_ORDER_BTN_CLICK: '/lgsp/v1/log/order/btnClick.lge', + LOG_ORDER_BTN_CLICK: "/lgsp/v1/log/order/btnClick.lge", // IF-LGSP-LOG-104 log order change controller - LOG_ORDER_CHANGE: '/lgsp/v1/log/order/change.lge', + LOG_ORDER_CHANGE: "/lgsp/v1/log/order/change.lge", // IF-LGSP-LOG-105 log coupon use controller - LOG_COUPON_USE: '/lgsp/v1/log/coupon/use.lge', + LOG_COUPON_USE: "/lgsp/v1/log/coupon/use.lge", // IF-LGSP-LOG-106 log cart add controller, 미사용 // LOG_CART_ADD: "/lgsp/v1/log/cart/add.lge", @@ -226,37 +235,37 @@ export const URLS = { // LOG_CART_DELETE: "/lgsp/v1/log/cart/delete.lge", // IF-LGSP-LOG-108 log payment entry controller - LOG_PAYMENT_ENTRY: '/lgsp/v1/log/payment/entry.lge', + LOG_PAYMENT_ENTRY: "/lgsp/v1/log/payment/entry.lge", // IF-LGSP-LOG-109 log payment complete controller - LOG_PAYMENT_COMPLETE: '/lgsp/v1/log/payment/complete.lge', + LOG_PAYMENT_COMPLETE: "/lgsp/v1/log/payment/complete.lge", // IF-LGSP-LOG-110 log brands controller - LOG_BRANDS: '/lgsp/v1/log/brands.lge', + LOG_BRANDS: "/lgsp/v1/log/brands.lge", // IF-LGSP-LOG-111 log myinfo controller - LOG_MY_INFO_EDIT: '/lgsp/v1/log/myinfo/edit.lge', + LOG_MY_INFO_EDIT: "/lgsp/v1/log/myinfo/edit.lge", // IF-LGSP-LOG-112 log checkout btn click controller - LOG_CHECKOUT_BTN_CLICK: '/lgsp/v1/log/checkout/btnClick.lge', + LOG_CHECKOUT_BTN_CLICK: "/lgsp/v1/log/checkout/btnClick.lge", // IF-LGSP-LOG-200 - LOG_TOTAL_RECOMMEND: '/lgsp/v1/log/recommend.lge', + LOG_TOTAL_RECOMMEND: "/lgsp/v1/log/recommend.lge", }; -export let countryCode = ''; -export let ricCode = ''; +export let countryCode = ""; +export let ricCode = ""; const getRicCode = (country, ricCodeSetting) => { - if (ricCodeSetting !== 'system') { + if (ricCodeSetting !== "system") { return ricCodeSetting; } - if (country == 'US') { - return 'aic'; - } else if (country == 'DE' || country == 'GB') { - return 'eic'; - } else if (country == 'RU') { - return 'ruc'; + if (country == "US") { + return "aic"; + } else if (country == "DE" || country == "GB") { + return "eic"; + } else if (country == "RU") { + return "ruc"; } return null; }; @@ -264,38 +273,38 @@ export const getUrl = (getState, endStr) => { const serverHOST = getState().common.appStatus.serverHOST; const { serverType, ricCodeSetting } = getState().localSettings; if (!serverHOST) { - console.error('getUrl: Not supported. Host is missing'); - return ''; + console.error("getUrl: Not supported. Host is missing"); + return ""; } // serverHOST "qt2-US.nextlgsdp.com" - let sdpURL = serverHOST.split('.')[0]; + let sdpURL = serverHOST.split(".")[0]; // let countryCode = "", // ricCode = ""; - if (sdpURL.indexOf('-') > 0) { - countryCode = sdpURL.split('-')[1]; + if (sdpURL.indexOf("-") > 0) { + countryCode = sdpURL.split("-")[1]; } else { countryCode = sdpURL; } ricCode = getRicCode(countryCode, ricCodeSetting); if (!ricCode) { - return ''; + return ""; } sdpURL = sdpURL.toLowerCase(); - if (serverType !== 'system') { + if (serverType !== "system") { sdpURL = serverType; } - let newUrl = ''; - if (sdpURL.indexOf('qt2') >= 0) { + let newUrl = ""; + if (sdpURL.indexOf("qt2") >= 0) { // dev - newUrl = 'https://qt2-' + ricCode + SHOPTIME_BASE_URL; - } else if (sdpURL.indexOf('qt') >= 0 || sdpURL.indexOf('st') >= 0) { + newUrl = "https://qt2-" + ricCode + SHOPTIME_BASE_URL; + } else if (sdpURL.indexOf("qt") >= 0 || sdpURL.indexOf("st") >= 0) { // Qa - cdn - newUrl = 'https://qt-' + ricCode + SHOPTIME_BASE_URL; + newUrl = "https://qt-" + ricCode + SHOPTIME_BASE_URL; } else { // Prod - newUrl = 'https://' + ricCode + SHOPTIME_BASE_URL; + newUrl = "https://" + ricCode + SHOPTIME_BASE_URL; } return newUrl + endStr; }; diff --git a/com.twin.app.shoptime/src/components/TItemCard/TItemCard.new.jsx b/com.twin.app.shoptime/src/components/TItemCard/TItemCard.new.jsx index fc3b0e79..30c8c5f5 100644 --- a/com.twin.app.shoptime/src/components/TItemCard/TItemCard.new.jsx +++ b/com.twin.app.shoptime/src/components/TItemCard/TItemCard.new.jsx @@ -1,58 +1,75 @@ -import React, { memo, useCallback, useEffect, useMemo, useState } from 'react'; +import React, { + memo, + useCallback, + useEffect, + useMemo, + useState, +} from 'react'; import classNames from 'classnames'; -import { useDispatch, useSelector } from 'react-redux'; +import { + useDispatch, + useSelector, +} from 'react-redux'; import Spottable from '@enact/spotlight/Spottable'; -import energyDetail from '../../../assets/images/energyLabel/energyDetail.png'; -import energyLabelA from '../../../assets/images/energyLabel/labelgradeA.png'; -import energyLabelB from '../../../assets/images/energyLabel/labelgradeB.png'; -import energyLabelC from '../../../assets/images/energyLabel/labelgradeC.png'; -import energyLabelD from '../../../assets/images/energyLabel/labelgradeD.png'; -import energyLabelE from '../../../assets/images/energyLabel/labelgradeE.png'; -import energyLabelF from '../../../assets/images/energyLabel/labelgradeF.png'; -import energyLabelG from '../../../assets/images/energyLabel/labelgradeG.png'; -//에너지 라벨 -import qrImg from '../../../assets/images/energyLabel/qr.png'; -import defaultLogoImg from '../../../assets/images/ic-tab-partners-default@3x.png'; -import defaultimgHorizontal from '../../../assets/images/img-thumb-empty-hor@3x.png'; -import defaultImageItem from '../../../assets/images/img-thumb-empty-product@3x.png'; -import defaultimgVertical from '../../../assets/images/img-thumb-empty-ver@3x.png'; +import defaultLogoImg + from '../../../assets/images/ic-tab-partners-default@3x.png'; +import defaultimgHorizontal + from '../../../assets/images/img-thumb-empty-hor@3x.png'; +import defaultImageItem + from '../../../assets/images/img-thumb-empty-product@3x.png'; +import defaultimgVertical + from '../../../assets/images/img-thumb-empty-ver@3x.png'; import IcLiveShow from '../../../assets/images/tag/tag-liveshow.png'; -import { setHidePopup, setShowPopup } from '../../actions/commonActions'; +import testPdf from '../../../assets/mock/test.pdf'; +import { + setHidePopup, + setShowPopup, +} from '../../actions/commonActions'; +import { + clearConvertedImage, + convertPdfToImage, +} from '../../actions/convertActions'; import { sendLogTotalRecommend } from '../../actions/logActions'; import usePriceInfo from '../../hooks/usePriceInfo'; import * as Config from '../../utils/Config'; -import { $L, getQRCodeUrl, removeSpecificTags } from '../../utils/helperMethods'; +import { + $L, + getQRCodeUrl, + removeSpecificTags, +} from '../../utils/helperMethods'; import CustomImage from '../CustomImage/CustomImage'; import TPopUp from '../TPopUp/TPopUp'; import css from './TItemCard.module.less'; -const SpottableComponent = Spottable('div'); -const SpottableTemp = Spottable('div'); +const SpottableComponent = Spottable("div"); +const SpottableTemp = Spottable("div"); const TYPES = { - vertical: 'vertical', - horizontal: 'horizontal', - videoShow: 'videoShow', + vertical: "vertical", + horizontal: "horizontal", + videoShow: "videoShow", }; const IMAGETYPES = { - imgHorizontal: 'imgHorizontal', - imgVertical: 'imgVertical', + imgHorizontal: "imgHorizontal", + imgVertical: "imgVertical", }; const STRING_CONF = { - SOLD_OUT: 'SOLD OUT', + SOLD_OUT: "SOLD OUT", + ENERGY_LOADING: "Loading energy label...", + ENERGY_ERROR: "Failed to load energy label", }; export const removeDotAndColon = (string) => { - return /[.:]/.test(string) ? string.replace(/[.:]/g, '') : string; + return /[.:]/.test(string) ? string.replace(/[.:]/g, "") : string; }; const parsePrice = (price) => { - return parseFloat(price?.replace(/[^0-9.-]+/g, '') || '0'); + return parseFloat(price?.replace(/[^0-9.-]+/g, "") || "0"); }; export default memo(function TItemCardNew({ @@ -99,23 +116,35 @@ export default memo(function TItemCardNew({ nowCategory, nowProductTitle, contentId, + dcPrice, + originPrice, + euEnrgLblInfos, ...rest }) { const dispatch = useDispatch(); const [defaultImage, setDefaultImage] = useState(null); - const [prdtId, setPrdtId] = useState(null); + const [currentPdfUrl, setCurrentPdfUrl] = useState(null); + const countryCode = useSelector((state) => state.common.httpHeader.cntry_cd); - const cursorVisible = useSelector((state) => state.common.appStatus.cursorVisible); - const { activePopup, popupVisible } = useSelector((state) => state.common.popup); + const cursorVisible = useSelector( + (state) => state.common.appStatus.cursorVisible + ); + const { activePopup, popupVisible } = useSelector( + (state) => state.common.popup + ); + + const convert = useSelector((state) => state.convert); const serverHOST = useSelector((state) => state.common.appStatus.serverHOST); const serverType = useSelector((state) => state.localSettings.serverType); useEffect(() => { if (!imageSource) { - if (type === 'videoShow') { + if (type === "videoShow") { setDefaultImage( - imgType === IMAGETYPES.imgHorizontal ? defaultimgHorizontal : defaultimgVertical + imgType === IMAGETYPES.imgHorizontal + ? defaultimgHorizontal + : defaultimgVertical ); } else { setDefaultImage(defaultImageItem); @@ -123,7 +152,8 @@ export default memo(function TItemCardNew({ } }, [imageSource, type, imgType]); - const { originalPrice, discountedPrice, discountRate } = usePriceInfo(priceInfo) || {}; + const { originalPrice, discountedPrice, discountRate } = + usePriceInfo(priceInfo) || {}; const _onBlur = useCallback(() => { if (onBlur) { @@ -211,23 +241,25 @@ export default memo(function TItemCardNew({ ); const ariaLabel = useMemo(() => { - const soldOutText = soldoutFlag === 'Y' ? 'Sold Out ' : ''; - const firstLabelText = firstLabel ? `${firstLabel} ` : ''; - const discountLabel = discountRate ? `${discountRate} discount, ` : ''; - const discountPriceLabel = discountRate ? `Sale price ${discountedPrice}, ` : ''; + const soldOutText = soldoutFlag === "Y" ? "Sold Out " : ""; + const firstLabelText = firstLabel ? `${firstLabel} ` : ""; + const discountLabel = discountRate ? `${discountRate} discount, ` : ""; + const discountPriceLabel = discountRate + ? `Sale price ${discountedPrice}, ` + : ""; const parsedPrice = parsePrice(originalPrice); const priceLabel = parsedPrice === 0 ? offerInfo ? ` ${offerInfo}` - : '' + : "" : originalPrice ? ` Original price ${originalPrice}, ` - : ''; + : ""; - const productLabel = label || ''; - const lastLabelText = lastLabel || ''; + const productLabel = label || ""; + const lastLabelText = lastLabel || ""; return `${soldOutText}${firstLabelText}${discountLabel}${productName}${discountPriceLabel}${priceLabel}${productLabel}${lastLabelText}`; }, [ @@ -247,19 +279,28 @@ export default memo(function TItemCardNew({ return sanitizedString; }, [productName]); + // 🔽 팝업 닫기 const handleClosePopup = useCallback(() => { dispatch(setHidePopup()); + dispatch(clearConvertedImage()); + setCurrentPdfUrl(null); }, [dispatch]); const { setupPinUrl } = useMemo(() => { return getQRCodeUrl({ serverHOST, serverType }); }, [serverHOST, serverType]); + // 🔽 에너지 라벨 클릭 - PDF 변환 시작 const onEnergyClick = useCallback( - (e, pId) => { + (e, pdfUrl) => { e.stopPropagation(); - setPrdtId(pId); + + setCurrentPdfUrl(pdfUrl); dispatch(setShowPopup(Config.ACTIVE_POPUP.energyPopup)); + + // PDF를 이미지로 변환 + // dispatch(convertPdfToImage(pdfUrl)); + dispatch(convertPdfToImage(testPdf)); }, [dispatch] ); @@ -270,13 +311,15 @@ export default memo(function TItemCardNew({ className={classNames( css[type], nonPosition && css.nonPosition, - type === 'videoShow' && css[imgType], + type === "videoShow" && css[imgType], className && className )} onBlur={_onBlur} onClick={_onClick} onFocus={_onFocus} - spotlightId={spotlightId ?? 'spotlightId-' + removeDotAndColon(productId)} + spotlightId={ + spotlightId ?? "spotlightId-" + removeDotAndColon(productId) + } aria-label={ariaLabel} role="button" {...rest} @@ -287,7 +330,7 @@ export default memo(function TItemCardNew({ delay={0} src={imageSource} fallbackSrc={ - type === 'videoShow' + type === "videoShow" ? imgType === IMAGETYPES.imgHorizontal ? defaultimgHorizontal : defaultimgVertical @@ -295,24 +338,34 @@ export default memo(function TItemCardNew({ } onError={addDefaultImg} /> - {priceInfo && discountRate && Number(discountRate.replace('%', '')) > 4 && ( - {discountRate} - )} - {soldoutFlag && soldoutFlag === 'Y' && ( -
+ {priceInfo && + discountRate && + Number(discountRate.replace("%", "")) > 4 && ( + {discountRate} + )} + {soldoutFlag && soldoutFlag === "Y" && ( +
{$L(STRING_CONF.SOLD_OUT)}
)} - {isLive && Live Show} + {isLive && ( + Live Show + )}
1000 - ? css.labelBox - : '' + euEnrgLblInfos && + euEnrgLblInfos.length > 0 && + euEnrgLblInfos[0]?.enrgLblIcnUrl !== null && + css.labelBox )} > {logoDisplay && logo && ( @@ -330,42 +383,52 @@ export default memo(function TItemCardNew({ {children} {priceInfo ? (

- {parseFloat(originalPrice?.replace(/[^0-9.-]+/g, '') || '0') === 0 ? ( + {parseFloat(originalPrice?.replace(/[^0-9.-]+/g, "") || "0") === + 0 ? ( {offerInfo} ) : discountRate ? ( discountedPrice ) : ( originalPrice )} - {discountRate && {originalPrice}} + {discountRate && ( + {originalPrice} + )}

) : (

{offerInfo}

)} + + {originPrice && ( +

+ {dcPrice ? dcPrice : originPrice} + {dcPrice && ( + {originPrice} + )} +

+ )}
- {originalPrice && - parseFloat(Number(originalPrice.replace('$', '').replace(',', ''))) > 1000 ? ( -
- onEnergyClick(e, productId)} - > - - - onEnergyClick(e, productId)} - > - - - onEnergyClick(e, productId)} - > - - -
- ) : null} + {euEnrgLblInfos && + euEnrgLblInfos.length > 0 && + euEnrgLblInfos[0]?.enrgLblIcnUrl !== null && + euEnrgLblInfos.map( + (info, index) => + index < 3 && ( +
+ onEnergyClick(e, info.enrgLblUrl)} + aria-label={`Energy Efficiency ${info.enrgGrade || ""}`} + > + + +
+ ) + )}
{isBestSeller && rank && (
@@ -373,33 +436,28 @@ export default memo(function TItemCardNew({
)} - {activePopup === Config.ACTIVE_POPUP.energyPopup && prdtId === productId && ( + + {activePopup === Config.ACTIVE_POPUP.energyPopup && currentPdfUrl && ( -
- - -
- -
-
- {/* - + {convert && ( +
+ Energy Label -
- -
- */} +
+ )}
)} diff --git a/com.twin.app.shoptime/src/reducers/convertReducer.js b/com.twin.app.shoptime/src/reducers/convertReducer.js new file mode 100644 index 00000000..34ef83ea --- /dev/null +++ b/com.twin.app.shoptime/src/reducers/convertReducer.js @@ -0,0 +1,48 @@ +import { types } from '../actions/actionTypes'; +import { + curry, + get, + set, +} from '../utils/fp'; + +// 초기 상태 정의 +const initialState = { + convertedImage: null, + error: null, + isConverting: false, +}; + +// 변환 성공 핸들러 +const convertSuccess = curry((state, action) => + set( + "convertedImage", + get("payload", action), + set("error", null, set("isConverting", false, state)) + ) +); + +// 변환 실패 핸들러 +const convertFailure = curry((state, action) => + set("error", get("payload", action), set("isConverting", false, state)) +); + +// 변환 데이터 초기화 핸들러 +const clearConverted = curry((state) => ({ + ...state, + convertedImage: null, + error: null, + isConverting: false, +})); + +// 액션 타입별 핸들러 매핑 +const handlers = { + [types.CONVERT_PDF_TO_IMAGE_SUCCESS]: convertSuccess, + [types.CONVERT_PDF_TO_IMAGE_FAILURE]: convertFailure, + [types.CLEAR_CONVERTED_IMAGE]: clearConverted, +}; + +export const convertReducer = (state = initialState, action = {}) => { + const type = get("type", action); + const handler = handlers[type]; + return handler ? handler(state, action) : state; +}; diff --git a/com.twin.app.shoptime/src/reducers/forYouReducer.js b/com.twin.app.shoptime/src/reducers/forYouReducer.js index fa5b6737..573bd4bf 100644 --- a/com.twin.app.shoptime/src/reducers/forYouReducer.js +++ b/com.twin.app.shoptime/src/reducers/forYouReducer.js @@ -1,38 +1,66 @@ import { types } from '../actions/actionTypes'; +import { + curry, + get, + set, +} from '../utils/fp'; // 초기 상태 정의 +// const initialState = { +// recentlySawItems: [], +// likeBrandProducts: [], +// moreToConciderAtThisPrice: [], +// }; const initialState = { - recentlySawItems: [], - likeBrandProducts: [], - moreToConciderAtThisPrice: [], + justForYouInfo: {}, + shelfInfos: {}, }; -const foryouReducer = (state = initialState, action) => { - switch (action.type) { - // 최근 본 아이템 - case types.GET_RECENTLY_SAW_ITEM: - return { - ...state, - recentlySawItems: action.payload, - }; +// const foryouReducer = (state = initialState, action) => { +// switch (action.type) { +// // 최근 본 아이템 +// case types.GET_RECENTLY_SAW_ITEM: +// return { +// ...state, +// recentlySawItems: action.payload, +// }; - // 좋아하는 브랜드 제품 - case types.GET_LIKE_BRAND_PRODUCT: - return { - ...state, - likeBrandProducts: action.payload, - }; +// // 좋아하는 브랜드 제품 +// case types.GET_LIKE_BRAND_PRODUCT: +// return { +// ...state, +// likeBrandProducts: action.payload, +// }; - // 이 가격대에서 고려할 만한 더 많은 제품 - case types.GET_MORE_TO_CONCIDER_AT_THIS_PRICE: - return { - ...state, - moreToConciderAtThisPrice: action.payload, - }; +// // 이 가격대에서 고려할 만한 더 많은 제품 +// case types.GET_MORE_TO_CONCIDER_AT_THIS_PRICE: +// return { +// ...state, +// moreToConciderAtThisPrice: action.payload, +// }; - default: - return state; - } +// default: +// return state; +// } +// }; + +const justForYouInfo = curry((state, action) => + set("justForYouInfo", get("payload", action), state) +); + +const shelfInfos = curry((state, action) => + set("shelfInfos", get("payload", action), state) +); + +const handlers = { + [types.GET_JUSTFORYOU_INFO]: justForYouInfo, + [types.GET_SHELFINFOS]: shelfInfos, }; -export default foryouReducer; +export const foryouReducer = (state = initialState, action = {}) => { + const type = get("type", action); + const handler = handlers[type]; + return handler ? handler(state, action) : state; +}; + +// export default foryouReducer; diff --git a/com.twin.app.shoptime/src/store/store.js b/com.twin.app.shoptime/src/store/store.js index 1cdc81e8..9cfcf3dc 100644 --- a/com.twin.app.shoptime/src/store/store.js +++ b/com.twin.app.shoptime/src/store/store.js @@ -1,4 +1,8 @@ -import { applyMiddleware, combineReducers, createStore } from 'redux'; +import { + applyMiddleware, + combineReducers, + createStore, +} from 'redux'; import thunk from 'redux-thunk'; import { appDataReducer } from '../reducers/appDataReducer'; @@ -9,12 +13,14 @@ import { cardReducer } from '../reducers/cardReducer'; import { cartReducer } from '../reducers/cartReducer'; import { checkoutReducer } from '../reducers/checkoutReducer'; import { commonReducer } from '../reducers/commonReducer'; +//convert +import { convertReducer } from '../reducers/convertReducer'; import { couponReducer } from '../reducers/couponReducer'; import { deviceReducer } from '../reducers/deviceReducer'; import { empReducer } from '../reducers/empReducer'; import { eventReducer } from '../reducers/eventReducer'; //foryou -import foryouReducer from '../reducers/forYouReducer'; +import { foryouReducer } from '../reducers/forYouReducer'; import { homeReducer } from '../reducers/homeReducer'; import { localSettingsReducer } from '../reducers/localSettingsReducer'; import { mainReducer } from '../reducers/mainReducer'; @@ -60,6 +66,7 @@ const rootReducer = combineReducers({ toast: toastReducer, videoPlay: videoPlayReducer, voice: voiceReducer, + convert: convertReducer, }); export const store = createStore(rootReducer, applyMiddleware(thunk)); diff --git a/com.twin.app.shoptime/src/views/HomePanel/HomeBanner/RandomBannerType/JustForYouBanner.jsx b/com.twin.app.shoptime/src/views/HomePanel/HomeBanner/RandomBannerType/JustForYouBanner.jsx index d1e53f00..7a67a429 100644 --- a/com.twin.app.shoptime/src/views/HomePanel/HomeBanner/RandomBannerType/JustForYouBanner.jsx +++ b/com.twin.app.shoptime/src/views/HomePanel/HomeBanner/RandomBannerType/JustForYouBanner.jsx @@ -45,29 +45,28 @@ function JustForYouBanner({ const [imagesLoaded, setImagesLoaded] = useState(false); const loadedImages = useRef(new Set()); - const Container = SpotlightContainerDecorator( - { enterTo: "last-focused" }, - "div" - ); - //NOTE - 임시 데이터 추후 API 연동 필요 const recentlyProductsData = useMemo( () => [ { src: creamImage, alt: "Product 1", + id: "Product_1", }, { src: pizzaImage, alt: "Product 4", + id: "Product_4", }, { src: coffeeImage, alt: "Product 2", + id: "Product_2", }, { src: salmonImage, alt: "Product 3", + id: "Product_3", }, ], [] @@ -85,7 +84,7 @@ function JustForYouBanner({ const preloadImages = recentlyProductsData.map((imageData) => ( handleImageLoad(imageData.src)} @@ -93,7 +92,7 @@ function JustForYouBanner({ )); return ( - - {!imagesLoaded && preloadImages} -
- {/* {imagesLoaded && } */} -
{recentlyProductsData.map((img, index) => ( -
+
{`item-${index}`}
- +
); } @@ -190,7 +184,7 @@ export default function JustForSwitchBanner({ name: panel_names.JUST_FOR_YOU_TEST_PANEL, }) ); - }, []); + }, [dispatch]); return (
{ const dispatch = useDispatch(); + const [showButton, setShowButton] = useState("showButton", true); const cbChangePageRef = useRef(null); - const recentlyItem = useSelector((state) => state.foryou.recentlySawItems); + const shelfInfos = useSelector((state) => state.foryou?.shelfInfos); - const STRING_CONF = { - LIKE_ITEMS: "Like items you recently saw", - LIKE_BRANDS: "Liked Brand Products", - MORE_PRICE: "More to Consider at This Price", - }; + useEffect(() => { + dispatch(getJustForYouInfo()); + }, [dispatch]); - const recentItems = useSelector( - (state) => state.product?.bestSellerData?.bestSeller - ); + useEffect(() => { + console.log("###shelfInfos updated", shelfInfos); + }, [dispatch, shelfInfos]); const onClick = useCallback(() => { dispatch(popPanel(panel_names.JUST_FOR_YOU_TEST_PANEL)); @@ -80,58 +75,68 @@ const JustForYouTestPanel = ({ panelInfo, ...rest }) => { cbChangePageRef.current(0, true); } - if (recentItems && recentItems.length > 0) { - const target = `spotlightId-recentItem-${recentItems[0]?.prdtId}`; + if ( + shelfInfos && + shelfInfos.length > 0 && + shelfInfos[0].productInfos?.length > 0 + ) { + const firstProduct = shelfInfos[0].productInfos[0]; + const target = `spotlightId-${shelfInfos[0].shelfId}-${removeDotAndColon(firstProduct.contentId)}`; Spotlight.focus(target); - setContainerLastFocusedElement(null, [SpotlightIds.JUST_FOR_YOU_ITEMS]); + setContainerLastFocusedElement(null, [ + `${SpotlightIds.JUST_FOR_YOU_ITEMS}_${shelfInfos[0].shelfId}`, + ]); } - }, [recentItems]); + }, [shelfInfos]); const renderItem = useCallback( - ({ index, ...rest }) => { - const { - imgUrl, - offerInfo, - prdtId, - lgCatNm, - patncNm, - patnrId, - brndNm, - prdtNm, - priceInfo, - } = recentItems[index]; + (shelfId, productInfos) => + ({ index, ...rest }) => { + if (!productInfos || !productInfos[index]) { + return null; + } - const handleItemClick = () => { - dispatch( - pushPanel({ - name: panel_names.DETAIL_PANEL, - panelInfo: { patnrId, prdtId }, - }) + const product = productInfos[index]; + const { + contentId, + title, + thumbnail, + price, + dcPrice, + partnerName, + partnerLogo, + } = product; + + const handleItemClick = () => { + // Extract product ID from contentId if needed + const prdtId = contentId.split("_").pop(); + dispatch( + pushPanel({ + name: panel_names.DETAIL_PANEL, + panelInfo: { prdtId: contentId }, + }) + ); + }; + + return ( + = 5} + imageAlt={title} + imageSource={thumbnail} + label={`${index + 1} of ${productInfos.length}`} + lastLabel=" go to detail, button" + priceInfo={{ price, dcPrice }} + productName={title} + productId={contentId} + onClick={handleItemClick} + spotlightId={`spotlightId-${shelfId}-${removeDotAndColon(contentId)}`} + {...rest} + /> ); - }; - - return ( - = 5} - imageAlt={prdtId} - imageSource={imgUrl} - label={index * 1 + 1 + " of " + recentItems.length} - lastLabel=" go to detail, button" - offerInfo={offerInfo} - priceInfo={priceInfo} - productName={prdtNm} - productId={prdtId} - onClick={handleItemClick} - spotlightId={"spotlightId-recentItem-" + removeDotAndColon(prdtId)} - {...rest} - /> - ); - }, - [recentItems] + }, + [dispatch] ); return ( @@ -153,78 +158,58 @@ const JustForYouTestPanel = ({ panelInfo, ...rest }) => { />
- {recentlyItem && recentlyItem?.length > 0 && ( - - -
- -
-
- )} - {recentItems && recentItems?.length > 0 && ( - - + {shelfInfos && + Array.isArray(shelfInfos) && + shelfInfos.length > 0 ? ( + <> + {shelfInfos.map((shelf, shelfIndex) => { + if ( + !shelf || + !shelf.productInfos || + shelf.productInfos.length === 0 + ) { + return null; + } -
- -
-
- )} - {recentItems && recentItems?.length > 0 && ( - - + return ( + + -
- -
-
+
+ +
+
+ ); + })} + + ) : ( +
+

Loading...

+
)} +