diff --git a/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/FeaturedBrandsPanel.jsx b/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/FeaturedBrandsPanel.jsx index 0a7de3e5..c6c9fa05 100644 --- a/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/FeaturedBrandsPanel.jsx +++ b/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/FeaturedBrandsPanel.jsx @@ -11,6 +11,7 @@ import { useDispatch, useSelector } from "react-redux"; import { Job } from "@enact/core/util"; import Spotlight from "@enact/spotlight"; +import SpotlightContainerDecorator from "@enact/spotlight/SpotlightContainerDecorator"; import { types } from "../../actions/actionTypes"; import { @@ -110,6 +111,17 @@ const DISPATCH_MAP = Object.freeze({ const TOP_MARGIN = 36; +// 🆕 [251211] NBCU(patnrId=21) 전용 통합 Container +// Banner + Category + BestSeller를 같은 Spotlight 계층 내에서 관리 +const NbcuIntegratedContainer = SpotlightContainerDecorator( + { + spotlightDirection: 'vertical', + enterTo: 'last-focused', + preserveld: true, + }, + 'div' +); + const hasTemplateCodeWithValue = (array, value) => array?.some((obj) => obj?.shptmBrndOptTpCd === value) ?? false; @@ -1096,23 +1108,49 @@ const FeaturedBrandsPanel = ({ isOnTop, panelInfo, spotlightId }) => { /> )} - {brandInfo && (brandTopImgInfo || (selectedPatnrId === 21 && brandTopBannerInfo)) && ( - - )} + {/* 🆕 [251211] patnrId=21일 때: Banner + Category + BestSeller를 통합 Container로 관리 */} + {(selectedPatnrId === 21 || selectedPatnrId === "21") ? ( + + {brandInfo && (brandTopImgInfo || brandTopBannerInfo) && ( + + )} - {sortedBrandLayoutInfo && ( -
- {renderPageItem()} -
+ {sortedBrandLayoutInfo && ( +
+ {renderPageItem()} +
+ )} +
+ ) : ( + <> + {brandInfo && (brandTopImgInfo || (selectedPatnrId === 21 && brandTopBannerInfo)) && ( + + )} + + {sortedBrandLayoutInfo && ( +
+ {renderPageItem()} +
+ )} + )} {displayTopButton && (