diff --git a/com.twin.app.shoptime/src/views/HomePanel/HomeBanner/HomeBannerTemplate1.jsx b/com.twin.app.shoptime/src/views/HomePanel/HomeBanner/HomeBannerTemplate1.jsx
index 4359baf7..4daa0929 100644
--- a/com.twin.app.shoptime/src/views/HomePanel/HomeBanner/HomeBannerTemplate1.jsx
+++ b/com.twin.app.shoptime/src/views/HomePanel/HomeBanner/HomeBannerTemplate1.jsx
@@ -1,6 +1,4 @@
-import React, {useCallback, useEffect, useState, useMemo,useRef ,memo} from "react";
-
-import classNames from "classnames";
+import React, { useCallback, useEffect, useState } from "react";
import { Job } from "@enact/core/util";
import { SpotlightContainerDecorator } from "@enact/spotlight/SpotlightContainerDecorator";
@@ -10,10 +8,8 @@ import Marquee from "@enact/sandstone/Marquee";
import Spottable from "@enact/spotlight/Spottable";
import CustomImage from "../../../components/CustomImage/CustomImage";
import css from "./Template.module.less";
-
-import banner2 from "../../../../assets/Image/img-home-banner-h-02.png";
-import banner3 from "../../../../assets/Image/img-home-banner-v-01.png";
-import banner4 from "../../../../assets/Image/img-home-banner-v-02.png";
+import Random from "./RandomUnit";
+import Rolling from "./RollingUnit";
const SpottableComponent = Spottable("div");
@@ -24,92 +20,153 @@ const Container = SpotlightContainerDecorator(
"div"
);
-export default memo (function HomeBannerTemplate1 ({isOnTop, spotlightId, onScrollTop, onScrollShelf, ...rest}) {
-
- const dispatch = useDispatch();
- const homeMainContentsBannerInfos = useSelector((state) => state.home.mainContentsData.homeMainContentsBannerInfos);
- const homeTopDisplayInfos = useSelector((state) => state.home.mainContentsData.homeTopDisplayInfos[0]);
-
- const [topImagePath, setTopImagePath] = useState("");
- const [verticalImage, setVerticalImage] = useState("");
+export default function HomeBannerTemplate1 ({ isOnTop, spotlightId, onScrollTop, onScrollShelf, homeMainContentsBannerInfos, homeTopDisplayInfos, ...rest }) {
+ const dispatch = useDispatch();
const [bannerImageLoaded, setBannerImageLoaded] = useState(false);
- // TOP IMAGE
- const topImgPath = () => {
+ const [baner1Index, setBaner1Index] = useState("");
+ const [baner2Index, setBaner2Index] = useState("");
+ const [baner3Index, setBaner3Index] = useState("");
+ const [baner4Index, setBaner4Index] = useState("");
+
+ const [baner1Data, setBaner1Data] = useState([]);
+ const [baner2Data, setBaner2Data] = useState([]);
+ const [baner3Data, setBaner3Data] = useState([]);
+ const [baner4Data, setBaner4Data] = useState([]);
+
+ const bannerInfos = homeMainContentsBannerInfos[0].bannerInfos;
+
+ // 배너가 없는 경우, 대체용 배너 [수직]
+ const replaceBannerVtctp = useCallback(() => {
let imgPath = "";
- if(homeTopDisplayInfos.wdthtpImgPath1 == "" || homeTopDisplayInfos.wdthtpImgPath1 == null){
- imgPath = homeTopDisplayInfos.wdthtpImgPath2;
+ if(homeTopDisplayInfos[0].vtctpImgPath1 == "" || homeTopDisplayInfos[0].vtctpImgPath1 == null){
+ imgPath = homeTopDisplayInfos[0].vtctpImgPath2;
}else{
- imgPath = homeTopDisplayInfos.wdthtpImgPath1;
+ imgPath = homeTopDisplayInfos[0].vtctpImgPath1;
}
+ return imgPath;
+ },[]);
- setTopImagePath(imgPath);
- };
-
- // VerticalImage
- const vtctpImage = () => {
+ // 배너가 없는 경우, 대체용 배너 [수평]
+ const replaceBannerWdth = useCallback(() => {
let imgPath = "";
- if(homeTopDisplayInfos.vtctpImgPath1 == "" || homeTopDisplayInfos.vtctpImgPath1 == null){
- imgPath = homeTopDisplayInfos.vtctpImgPath2;
+ if(homeTopDisplayInfos[0].wdthtpImgPath1 == "" || homeTopDisplayInfos[0].wdthtpImgPath1 == null){
+ imgPath = homeTopDisplayInfos[0].wdthtpImgPath2;
}else{
- imgPath = homeTopDisplayInfos.vtctpImgPath1;
+ imgPath = homeTopDisplayInfos[0].wdthtpImgPath1;
}
+ return imgPath;
+ },[]);
- setVerticalImage(imgPath);
- };
-
- useEffect(() => {
- topImgPath();
- vtctpImage();
-
- }, [homeMainContentsBannerInfos, homeTopDisplayInfos]);
-
- const onClickBanner = useCallback(() => {
+ const onClickBanner = useCallback(() => {
}, []);
+ useEffect(() => {
+ bannerInfos.forEach((el, index) => {
+ if(el.banrLctnNo == "1"){
+ setBaner1Data(el);
+ setBaner1Index(index);
+ }
+ else if(el.banrLctnNo == "2"){
+ setBaner2Data(el);
+ setBaner2Index(index);
+ }
+ else if(el.banrLctnNo == "3"){
+ setBaner3Data(el);
+ setBaner3Index(index);
+ }
+ else if(el.banrLctnNo == "4"){
+ setBaner4Data(el);
+ setBaner4Index(index);
+ }
+ });
+ console.log(homeMainContentsBannerInfos, "메인 컨텐츠");
+ console.log(homeTopDisplayInfos, "탑디스");
+ }, [homeMainContentsBannerInfos]);
+
return (
템플릿2
) - - } \ No newline at end of file diff --git a/com.twin.app.shoptime/src/views/HomePanel/HomeBanner/HomeBannerTemplate3.jsx b/com.twin.app.shoptime/src/views/HomePanel/HomeBanner/HomeBannerTemplate3.jsx index 465c5a10..937b718d 100644 --- a/com.twin.app.shoptime/src/views/HomePanel/HomeBanner/HomeBannerTemplate3.jsx +++ b/com.twin.app.shoptime/src/views/HomePanel/HomeBanner/HomeBannerTemplate3.jsx @@ -1,16 +1,21 @@ -import React, { useEffect } from "react"; +import React, { useCallback, useEffect, useState } from "react"; -import { useDispatch, useSelector } from "react-redux"; - -import SpotlightContainerDecorator from "@enact/spotlight/SpotlightContainerDecorator"; +import { Job } from "@enact/core/util"; +import { SpotlightContainerDecorator } from "@enact/spotlight/SpotlightContainerDecorator"; import Spottable from "@enact/spotlight/Spottable"; +import Spotlight from "@enact/spotlight"; +import { useDispatch, useSelector } from "react-redux"; +import Marquee from "@enact/sandstone/Marquee"; +import CustomImage from "../../../components/CustomImage/CustomImage"; +import css from "./Template.module.less"; +import Random from "./RandomUnit"; +import Rolling from "./RollingUnit"; import testimg from "../../../../assets/h430054.webp"; import banner2 from "../../../../assets/Image/img-home-banner-h-02.png"; import banner4 from "../../../../assets/Image/img-home-banner-v-02.png"; import banner3 from "../../../../assets/images/mainTemplate/img-home-banner-td-ver.svg"; import HomeTodayDeal from "../HomeTodayDeal/HomeTodayDeal"; -import css from "./Template.module.less"; const SpottableComponent = Spottable("div"); @@ -21,39 +26,169 @@ const Container = SpotlightContainerDecorator( "div" ); -export default function HomeBannerTemplate3() { +export default function HomeBannerTemplate3({ isOnTop, spotlightId, onScrollTop, onScrollShelf, homeMainContentsBannerInfos, homeTopDisplayInfos, ...rest }) { const dispatch = useDispatch(); + const [bannerImageLoaded, setBannerImageLoaded] = useState(false); - const homeMainContentsBannerInfos = useSelector( - (state) => state.home.mainContentsData.homeMainContentsBannerInfos - ); - const testchk = useSelector((state) => state); - console.log("##", testchk); + const [baner1Index, setBaner1Index] = useState(""); + const [baner2Index, setBaner2Index] = useState(""); + const [baner3Index, setBaner3Index] = useState(""); + const [baner4Index, setBaner4Index] = useState(""); + + const [baner1Data, setBaner1Data] = useState([]); + const [baner2Data, setBaner2Data] = useState([]); + const [baner3Data, setBaner3Data] = useState([]); + const [baner4Data, setBaner4Data] = useState([]); + + const bannerInfos = homeMainContentsBannerInfos[0].bannerInfos; + + // 배너가 없는 경우, 대체용 배너 [수직] + const replaceBannerVtctp = useCallback(() => { + let imgPath = ""; + + if(homeTopDisplayInfos[0].vtctpImgPath1 == "" || homeTopDisplayInfos[0].vtctpImgPath1 == null){ + imgPath = homeTopDisplayInfos[0].vtctpImgPath2; + }else{ + imgPath = homeTopDisplayInfos[0].vtctpImgPath1; + } + return imgPath; + },[]); + + // 배너가 없는 경우, 대체용 배너 [수직] + const replaceBannerWdth = useCallback(() => { + let imgPath = ""; + + if(homeTopDisplayInfos[0].wdthtpImgPath1 == "" || homeTopDisplayInfos[0].wdthtpImgPath1 == null){ + imgPath = homeTopDisplayInfos[0].wdthtpImgPath2; + }else{ + imgPath = homeTopDisplayInfos[0].wdthtpImgPath1; + } + return imgPath; + },[]); + + const onClickBanner = useCallback(() => { + + }, []); + + useEffect(() => { + bannerInfos.forEach((el, index) => { + if(el.banrLctnNo == "1"){ + setBaner1Data(el); + setBaner1Index(index); + } + else if(el.banrLctnNo == "2"){ + setBaner2Data(el); + setBaner2Index(index); + } + else if(el.banrLctnNo == "3"){ + setBaner3Data(el); + setBaner3Index(index); + } + else if(el.banrLctnNo == "4"){ + setBaner4Data(el); + setBaner4Index(index); + } + }); + + console.log(homeMainContentsBannerInfos, "메인 컨텐츠"); + console.log(homeTopDisplayInfos, "탑디스"); + }, [homeMainContentsBannerInfos]); + return (TEST
+ ) : randomData.shptmBanrTpNm == "LIVE" || randomData.shptmBanrTpNm == "VOD" ? ( +비디오
+ ) : randomData.shptmBanrTpNm == "Today's Deals" || randomData.shptmBanrTpNm == "" ? ( +TEST
+ ) +}; \ No newline at end of file diff --git a/com.twin.app.shoptime/src/views/HomePanel/HomePanel.jsx b/com.twin.app.shoptime/src/views/HomePanel/HomePanel.jsx index 9478ce3f..4bb368c3 100644 --- a/com.twin.app.shoptime/src/views/HomePanel/HomePanel.jsx +++ b/com.twin.app.shoptime/src/views/HomePanel/HomePanel.jsx @@ -1,69 +1,98 @@ -import React, { useEffect, useState } from "react"; +import React, {useCallback, useEffect, useState} from "react"; import { useDispatch, useSelector } from "react-redux"; import TPanel from "../../components/TPanel/TPanel"; -import { $L } from "../../utils/helperMethods"; import BestSeller from "../HomePanel/BestSeller/BestSeller"; import HomeOnSale from "../HomePanel/HomeOnSale/HomeOnSale"; import css from "../HomePanel/HomePanel.module.less"; import PopularShow from "../HomePanel/PopularShow/PopularShow"; import SubCategory from "../HomePanel/SubCategory/SubCategory"; -import HomeTemplate from "./HomeTemplate"; +import HomeBannerTemplate1 from "../HomePanel/HomeBanner/HomeBannerTemplate1"; +import HomeBannerTemplate2 from "../HomePanel/HomeBanner/HomeBannerTemplate2"; +import HomeBannerTemplate3 from "../HomePanel/HomeBanner/HomeBannerTemplate3"; export default function HomePanel() { const dispatch = useDispatch(); - - const latoutData = useSelector((state) => state.home.layoutData); + const homeLayoutInfo = useSelector((state) => state.home.layoutData); const homeMainContentsBannerInfos = useSelector( (state) => state.home.mainContentsData.homeMainContentsBannerInfos ); const homeTopDisplayInfos = useSelector( (state) => state.home.mainContentsData.homeTopDisplayInfos ); - const [selectTemplate, setSelectTemplate] = useState(null); - const getHomeLayout = () => {}; - - const getHomeContents = () => { - // 추후 다시 한번 확인: 코드(DSP00201, 202, 203) - // 템플릿 선택 - let tempTemplate = 0; - - if (homeTopDisplayInfos) { - if (homeTopDisplayInfos[0].shptmTmplCd == "DSP00201") { - tempTemplate = 1; - } - if (homeTopDisplayInfos[0].shptmTmplCd == "DSP00202") { - tempTemplate = 2; - } - if (homeTopDisplayInfos[0].shptmTmplCd == "DSP00203") { - tempTemplate = 3; - } + const [select, setSelect] = useState(null); + const [homeLayoutInfoDetail, setHomeLayoutInfoDetail] = useState([]); + // 추후 스위치 select 로 변경 : 스팟라이트 테스트 중 + const selectSwitch = () =>{ + switch ("DSP00203") { + case "DSP00201": + return( +