diff --git a/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/LiveChannels/LiveChannels.jsx b/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/LiveChannels/LiveChannels.jsx
index f45201d9..d5ac2364 100644
--- a/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/LiveChannels/LiveChannels.jsx
+++ b/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/LiveChannels/LiveChannels.jsx
@@ -1,12 +1,9 @@
-import React, { useEffect } from "react";
-
-import { VirtualGridList } from "@enact/sandstone/VirtualList";
-import ri from "@enact/ui/resolution";
+import React, { useCallback } from "react";
import SectionTitle from "../../../components/SectionTitle/SectionTitle";
-import TItemCard from "../../../components/TItemCard/TItemCard";
import { $L } from "../../../utils/helperMethods";
import css from "./LiveChannels.module.less";
+import LiveProductList from "./LiveProductList/LiveProductList";
import LiveVideoCard from "./LiveVideoCard/LiveVideoCard";
// getBrandLiveChannelInfo → brandChanInfo → brandProductInfo
@@ -23,12 +20,6 @@ import LiveVideoCard from "./LiveVideoCard/LiveVideoCard";
const LIVE_CHANNELS_STRING = "LIVE CHANNELS";
-const LIST_ITEM_CONF = {
- ITEM_WIDTH: 660 * 2,
- ITEM_HEIGHT: 236 * 2,
- SAPCING: 12 * 2,
-};
-
export default function LiveChannels({ brandChanInfo, brandChannelCnt }) {
const {
alamDispFlag,
@@ -52,25 +43,8 @@ export default function LiveChannels({ brandChanInfo, brandChannelCnt }) {
vtctpYn, // 영상 세로 여부
} = brandChanInfo;
- const renderItem = ({ index, ...rest }) => {
- const { prdtImgUrl, prdtId, prdtNm, priceInfo, soldoutFlag } =
- brandProductInfo[index];
- return (
- <>
-
- >
- );
- };
+ // @@pyh Todo, scenario page 100, thumbnail click → 영상 full 화면 이동 및 해당 상품 focuse
+ const handleCardClick = useCallback((productId) => {}, []);
return (
<>
@@ -79,6 +53,7 @@ export default function LiveChannels({ brandChanInfo, brandChannelCnt }) {
{brandChannelCnt === 1 && (
+ // 라이브 영상이 1개일 경우
-
- {brandProductInfo && (
-
- )}
-
+ {brandProductInfo && (
+
+ )}
)}
{brandChannelCnt > 1 && (
+ // @@pyh Todo, 영상이 2개 이상일 경우 UI/UX 작업 (harmony API 신청 후 작업)
+ // 라이브 영상이 1개보다 많을 경우
{"brandChannelCnt(영상의 수)가 1보다 클 경우, type = vertical"}
diff --git a/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/LiveChannels/LiveChannels.module.less b/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/LiveChannels/LiveChannels.module.less
index 56cc4a02..0c2a5cd0 100644
--- a/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/LiveChannels/LiveChannels.module.less
+++ b/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/LiveChannels/LiveChannels.module.less
@@ -12,16 +12,5 @@
position: relative;
.flex(@justifyCenter: flex-start);
width: 100%;
-
- .tempContainer {
- .size(@w: 660px, @h: 564px);
- .virtualGridList {
- // overflow: unset;
-
- > div {
- // overflow: unset !important;
- }
- }
- }
}
}
diff --git a/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/LiveChannels/LiveProductList/LiveProductList.jsx b/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/LiveChannels/LiveProductList/LiveProductList.jsx
new file mode 100644
index 00000000..7343ee1f
--- /dev/null
+++ b/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/LiveChannels/LiveProductList/LiveProductList.jsx
@@ -0,0 +1,64 @@
+import React, { useCallback } from "react";
+
+import { VirtualGridList } from "@enact/sandstone/VirtualList";
+import ri from "@enact/ui/resolution";
+
+import TItemCard from "../../../../components/TItemCard/TItemCard";
+import css from "./LiveProductList.module.less";
+
+const LIST_ITEM_CONF = {
+ ITEM_WIDTH: 660 * 2,
+ ITEM_HEIGHT: 236 * 2,
+ SAPCING: 12 * 2,
+};
+
+export default function LiveProductList({ brandProductInfo, onCardClick }) {
+ const renderItem = useCallback(
+ ({ index, ...rest }) => {
+ const {
+ prdtImgUrl,
+ prdtId: productId,
+ prdtNm: productName,
+ priceInfo,
+ soldoutFlag,
+ } = brandProductInfo[index];
+
+ return (
+
+ );
+ },
+ [brandProductInfo, onCardClick]
+ );
+
+ return (
+
+ {brandProductInfo && (
+
+ )}
+
+ );
+}
diff --git a/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/LiveChannels/LiveProductList/LiveProductList.module.less b/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/LiveChannels/LiveProductList/LiveProductList.module.less
new file mode 100644
index 00000000..2c58ef86
--- /dev/null
+++ b/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/LiveChannels/LiveProductList/LiveProductList.module.less
@@ -0,0 +1,23 @@
+@import "../../../../style/CommonStyle.module.less";
+@import "../../../../style/utils.module.less";
+
+.container {
+ position: relative;
+ .size(@w: 660px, @h: 564px);
+
+ &::after {
+ .position(@position: absolute, @bottom: 0, @left: 0);
+ .size(@w: 100%, @h: 50px);
+ background-image: linear-gradient(to bottom, transparent 65%, @COLOR_WHITE);
+ content: "";
+ }
+
+ // @@pyh Todo, box-shadow issue
+ // .virtualGridList {
+ // overflow: unset;
+
+ // > div {
+ // overflow: unset !important;
+ // }
+ // }
+}
diff --git a/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/LiveChannels/LiveProductList/package.json b/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/LiveChannels/LiveProductList/package.json
new file mode 100644
index 00000000..3f3862d3
--- /dev/null
+++ b/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/LiveChannels/LiveProductList/package.json
@@ -0,0 +1,6 @@
+{
+ "main": "LiveProductList.jsx",
+ "styles": [
+ "LiveProductList.module.less"
+ ]
+}