diff --git a/com.twin.app.shoptime/assets/images/featuredBrands/image-bg.png b/com.twin.app.shoptime/assets/images/featuredBrands/image-bg.png
new file mode 100644
index 00000000..8e9d71a5
Binary files /dev/null and b/com.twin.app.shoptime/assets/images/featuredBrands/image-bg.png differ
diff --git a/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/Banner/Banner.jsx b/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/Banner/Banner.jsx
index 8666f37a..c391a199 100644
--- a/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/Banner/Banner.jsx
+++ b/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/Banner/Banner.jsx
@@ -1,6 +1,7 @@
import React, { memo } from "react";
import IcPartnersDefault from "../../../../assets/images/ic-tab-partners-default@3x.png";
+import NBCULogoImage from "../../../../assets/images/featuredBrands/image-nbcu.png";
import CustomImage from "../../../components/CustomImage/CustomImage";
import css from "./Banner.module.less";
@@ -15,16 +16,20 @@ export default memo(function Banner({
const { patncLogoPath, patncNm } = selectedBrandInfo;
const { topImgAlt, topImgPath } = brandTopImgInfo;
+ // NBCU 로고 이미지 처리
+ const logoSrc = panelPatnrId === 'NBCU' ? NBCULogoImage : patncLogoPath;
+ const logoName = panelPatnrId === 'NBCU' ? 'Peacock' : patncNm;
+
return (
- {patncNm}
+ {logoName}
diff --git a/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/FeaturedBrandsPanel.jsx b/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/FeaturedBrandsPanel.jsx
index 08fe6410..b7cf57e0 100644
--- a/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/FeaturedBrandsPanel.jsx
+++ b/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/FeaturedBrandsPanel.jsx
@@ -69,6 +69,7 @@ import TodaysDeals from "./TodaysDeals/TodaysDeals";
import UpComing from "./UpComing/UpComing";
import { setContainerLastFocusedElement } from "@enact/spotlight/src/container";
import { sortedIndexOf } from "lodash";
+import NBCUBgImage from "../../../assets/images/featuredBrands/image-bg.png";
const STRING_CONF = {
CANCEL: "CANCEL",
@@ -326,6 +327,24 @@ const FeaturedBrandsPanel = ({ isOnTop, panelInfo, spotlightId }) => {
[brandLayoutInfo, panelInfo?.patnrId]
);
+ const processedBrandTopImgInfo = useMemo(
+ () => {
+ // NBCU 특별 처리
+ if (panelInfo?.patnrId === 'NBCU') {
+ return {
+ topImgPath: NBCUBgImage,
+ topImgAlt: 'NBCU Background Image',
+ };
+ }
+ // 다른 브랜드: brandTopImgInfo가 유효한 객체여야 함
+ if (brandTopImgInfo && brandTopImgInfo.topImgPath) {
+ return brandTopImgInfo;
+ }
+ return null;
+ },
+ [brandTopImgInfo, panelInfo?.patnrId]
+ );
+
const doSendLogGNB = useCallback(
(containerId, shelfOrder) => {
if (
@@ -440,6 +459,9 @@ const FeaturedBrandsPanel = ({ isOnTop, panelInfo, spotlightId }) => {
handleItemFocus={handleItemFocus}
spotlightId={TEMPLATE_CODE_CONF.NBCU}
shelfOrder={el.expsOrd}
+ shelfTitle={el.shptmBrndOptTpNm}
+ selectedPatnrId={selectedPatnrId}
+ order={idx + 1}
/>
);
@@ -995,10 +1017,10 @@ const FeaturedBrandsPanel = ({ isOnTop, panelInfo, spotlightId }) => {
/>
)}
- {brandInfo && brandTopImgInfo && (
+ {((brandInfo && processedBrandTopImgInfo) || panelInfo?.patnrId === 'NBCU') && processedBrandTopImgInfo && (
)}
diff --git a/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/NBCUContent/NBCUContent.jsx b/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/NBCUContent/NBCUContent.jsx
index 2b4ca69b..ba21da68 100644
--- a/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/NBCUContent/NBCUContent.jsx
+++ b/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/NBCUContent/NBCUContent.jsx
@@ -1,14 +1,78 @@
-import React, { memo } from 'react';
-import css from './NBCUContent.module.less';
+import React, { memo, useCallback, useState } from "react";
+
+import Spotlight from "@enact/spotlight";
+import SpotlightContainerDecorator from "@enact/spotlight/SpotlightContainerDecorator";
+
+import SectionTitle from "../../../components/SectionTitle/SectionTitle";
+import { $L } from "../../../utils/helperMethods";
+import css from "./NBCUContent.module.less";
+import NBCUList from "./NBCUList/NBCUList";
+
+const STRING_CONF = {
+ NBCU: "NBCU",
+};
+
+const Container = SpotlightContainerDecorator(
+ { leaveFor: { right: "" }, enterTo: "last-focused" },
+ "div"
+);
+
+const NBCUContent = ({
+ handleItemFocus,
+ spotlightId,
+ shelfOrder,
+ selectedPatnrId,
+ shelfTitle,
+ order,
+}) => {
+ const [firstChk, setFirstChk] = useState(0);
+
+ const _handleItemFocus = useCallback(() => {
+ if (handleItemFocus) handleItemFocus(spotlightId, shelfOrder);
+
+ const c = Spotlight.getCurrent();
+ if (firstChk === 0) {
+ if (c) {
+ let cAriaLabel = c.getAttribute("aria-label");
+ if (cAriaLabel) {
+ cAriaLabel = "NBCU, Heading1," + cAriaLabel;
+ c.setAttribute("aria-label", cAriaLabel);
+ }
+ }
+ setFirstChk(1);
+ } else if (firstChk === 1) {
+ if (c) {
+ let cAriaLabel = c.getAttribute("aria-label");
+ if (cAriaLabel) {
+ const newcAriaLabel = cAriaLabel.replace("NBCU, Heading1,", "");
+ c.setAttribute("aria-label", newcAriaLabel);
+ }
+ }
+ } else {
+ return;
+ }
+ }, [handleItemFocus, firstChk, spotlightId, shelfOrder]);
-const NBCUContent = ({ handleItemFocus, spotlightId, shelfOrder = 1 }) => {
return (
-
-
-
NBCU
-
Content Coming Soon
-
-
+
+
+
+
);
};
diff --git a/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/NBCUContent/NBCUContent.module.less b/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/NBCUContent/NBCUContent.module.less
index 521148a2..ef0f8e01 100644
--- a/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/NBCUContent/NBCUContent.module.less
+++ b/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/NBCUContent/NBCUContent.module.less
@@ -1,28 +1 @@
@import "../../../style/CommonStyle.module.less";
-
-.container {
- width: 100%;
- padding: 40px 60px;
- margin-bottom: 58px;
-}
-
-.content {
- display: flex;
- flex-direction: column;
- align-items: center;
- justify-content: center;
- min-height: 400px;
-}
-
-.title {
- font-size: 32px;
- font-weight: bold;
- margin-bottom: 20px;
- color: #333;
-}
-
-.message {
- font-size: 18px;
- color: #666;
- margin: 0;
-}
diff --git a/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/NBCUContent/NBCUList/NBCUList.jsx b/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/NBCUContent/NBCUList/NBCUList.jsx
index 21fc9214..df669d48 100644
--- a/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/NBCUContent/NBCUList/NBCUList.jsx
+++ b/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/NBCUContent/NBCUList/NBCUList.jsx
@@ -49,7 +49,7 @@ const NBCUList = ({ handleItemFocus, spotlightId, shelfTitle, shelfOrder }) => {
);
return (
-
+
-
- {brandInfo.map((brandInfoItem, itemIndex) => (
-
- ))}
+ {panelPatnrId === 'NBCU' ? (
+ <>
+
+ {brandInfo.map((brandInfoItem, itemIndex) => (
+
+ ))}
+ >
+ ) : (
+ brandInfo.map((brandInfoItem, itemIndex) => (
+
+ ))
+ )}