diff --git a/com.twin.app.shoptime/src/hooks/useScrollTo.js b/com.twin.app.shoptime/src/hooks/useScrollTo.js
index e96402a2..6254a50c 100644
--- a/com.twin.app.shoptime/src/hooks/useScrollTo.js
+++ b/com.twin.app.shoptime/src/hooks/useScrollTo.js
@@ -1,6 +1,6 @@
import React, { useCallback, useEffect, useRef } from "react";
-export default function useScrollTo() {
+export default function useScrollTo({ skipAutoScrollTop = false } = {}) {
const scrollTo = useRef();
const scrollTop = useCallback(
@@ -23,8 +23,10 @@ export default function useScrollTo() {
}, []);
useEffect(() => {
- scrollTop();
- }, []);
+ if (!skipAutoScrollTop) {
+ scrollTop();
+ }
+ }, [skipAutoScrollTop]);
return { getScrollTo, scrollLeft, scrollTop, scrollToRef: scrollTo };
}
diff --git a/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/ShopByShow/ShopByShow.jsx b/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/ShopByShow/ShopByShow.jsx
index cf5a7585..16855239 100644
--- a/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/ShopByShow/ShopByShow.jsx
+++ b/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/ShopByShow/ShopByShow.jsx
@@ -1,12 +1,19 @@
-import React, { memo, useCallback, useState } from "react";
+import React, { memo, useCallback, useEffect, useRef, useState } from "react";
+import { useDispatch, useSelector } from "react-redux";
+
+import { getBrandShopByShow } from "../../../actions/brandActions";
+
+import { Job } from "@enact/core/util";
import Spotlight from "@enact/spotlight";
import SpotlightContainerDecorator from "@enact/spotlight/SpotlightContainerDecorator";
+import useScrollTo from "../../../hooks/useScrollTo";
import SectionTitle from "../../../components/SectionTitle/SectionTitle";
import { $L } from "../../../utils/helperMethods";
import css from "./ShopByShow.module.less";
-import ShopByShowList from "./ShopByShowList/ShopByShowList";
+import ShopByShowNav from "./ShopByShowList/ShopByShowNav/ShopByShowNav";
+import ShopByShowContents from "./ShopByShowList/ShopByShowContents/ShopByShowContents";
const STRING_CONF = {
SHOP_BY_SHOW: "SHOP BY SHOW",
@@ -28,6 +35,33 @@ const ShopByShow = ({
shelfTitle,
}) => {
const [firstChk, setFirstChk] = useState(0);
+ const dispatch = useDispatch();
+ const { getScrollTo, scrollLeft } = useScrollTo({ skipAutoScrollTop: true });
+ const panelInfo = useSelector((state) => state.panels.panels[0]?.panelInfo);
+ const scrollLeftJob = useRef(new Job((func) => func(), 0));
+
+ const brandShopByShowClctInfos = brandShopByShowContsInfo?.brandShopByShowClctInfos || [];
+
+ const handleContsIdChange = useCallback((contsId) => {
+ dispatch(getBrandShopByShow({ patnrId: selectedPatnrId, contsId }));
+ }, [selectedPatnrId, dispatch]);
+
+ useEffect(() => {
+ if (panelInfo?.section !== "shop-by-show" || !panelInfo?.x) {
+ return;
+ }
+
+ const scrollLeftJobValue = scrollLeftJob.current;
+ const { x } = panelInfo;
+
+ scrollLeftJobValue.start(() => scrollLeft({ x }));
+
+ return () => scrollLeftJobValue.stop();
+ }, [panelInfo, scrollLeft]);
+
+ useEffect(() => {
+ scrollLeft();
+ }, [scrollLeft, selectedPatnrId]);
const _handleItemFocus = useCallback(() => {
if (handleItemFocus) handleItemFocus(spotlightId, shelfOrder);
@@ -70,15 +104,27 @@ const ShopByShow = ({
data-title="shop-by-show"
label="shop-by-show Heading 1"
/>
-
+ {brandShopByShowClctInfos.map((collection, collIdx) => (
+
+ ))}
);
};
diff --git a/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/ShopByShow/ShopByShow.module.less b/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/ShopByShow/ShopByShow.module.less
index 37ace4d3..9b9e1aa3 100644
--- a/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/ShopByShow/ShopByShow.module.less
+++ b/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/ShopByShow/ShopByShow.module.less
@@ -9,4 +9,8 @@
margin-bottom: 24px;
padding-left: 60px;
}
+
+ > nav {
+ margin-bottom: 30px;
+ }
}
diff --git a/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/ShopByShow/ShopByShowList/ShopByShowList.jsx b/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/ShopByShow/ShopByShowList/ShopByShowList.jsx
deleted file mode 100644
index b32183df..00000000
--- a/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/ShopByShow/ShopByShowList/ShopByShowList.jsx
+++ /dev/null
@@ -1,116 +0,0 @@
-import React, {
- useCallback,
- useEffect,
- useRef,
- useState,
-} from 'react';
-
-import {
- useDispatch,
- useSelector,
-} from 'react-redux';
-
-import { Job } from '@enact/core/util';
-import SpotlightContainerDecorator
- from '@enact/spotlight/SpotlightContainerDecorator';
-import {
- getContainerId,
- setContainerLastFocusedElement,
-} from '@enact/spotlight/src/container';
-
-import { getBrandShopByShow } from '../../../../actions/brandActions';
-import useScrollTo from '../../../../hooks/useScrollTo';
-import css from './ShopByShowList.module.less';
-import ShopByShowNav from './ShopByShowNav/ShopByShowNav';
-import ShopByShowContents from './ShopByShowContents/ShopByShowContents';
-
-const Container = SpotlightContainerDecorator(
- { leaveFor: { right: "" }, enterTo: "last-focused" },
- "div"
-);
-
-export default function ShopByShowList({
- brandShopByShowContsList,
- brandShopByShowContsInfo,
- handleItemFocus,
- selectedPatnrId,
- spotlightId,
- shelfTitle,
- shelfOrder,
-}) {
- const { getScrollTo, scrollLeft } = useScrollTo();
- const dispatch = useDispatch();
- const panelInfo = useSelector((state) => state.panels.panels[0]?.panelInfo);
- const scrollLeftJob = useRef(new Job((func) => func(), 0));
-
- const brandShopByShowClctInfos = brandShopByShowContsInfo?.brandShopByShowClctInfos || [];
-
- useEffect(() => {
- if (panelInfo?.section !== "shop-by-show" || !panelInfo?.x) {
- return;
- }
-
- const scrollLeftJobValue = scrollLeftJob.current;
- const { x } = panelInfo;
-
- scrollLeftJobValue.start(() => scrollLeft({ x }));
-
- return () => scrollLeftJobValue.stop();
- }, [panelInfo, scrollLeft]);
-
- useEffect(() => {
- const containerId = "shop-by-show-list-id";
- const container = document.getElementById(containerId);
-
- if (container) {
- const childrenId = getContainerId(container?.children[0].children[0]);
-
- if (childrenId) {
- setContainerLastFocusedElement(null, [containerId, childrenId]);
- }
- }
-
- scrollLeft();
- }, [scrollLeft, selectedPatnrId]);
-
- const handleContsIdChange = useCallback((contsId) => {
- dispatch(getBrandShopByShow({ patnrId: selectedPatnrId, contsId }));
- }, [selectedPatnrId, dispatch]);
-
- const _handleItemFocus = useCallback(() => {
- if (handleItemFocus) {
- handleItemFocus();
- }
- }, [handleItemFocus]);
-
- return (
-
-
-
- {brandShopByShowClctInfos.map((collection, collIdx) => (
-
- ))}
-
- );
-}
diff --git a/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/ShopByShow/ShopByShowList/ShopByShowList.module.less b/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/ShopByShow/ShopByShowList/ShopByShowList.module.less
deleted file mode 100644
index 967308aa..00000000
--- a/com.twin.app.shoptime/src/views/FeaturedBrandsPanel/ShopByShow/ShopByShowList/ShopByShowList.module.less
+++ /dev/null
@@ -1,13 +0,0 @@
-@import "../../../../style/CommonStyle.module.less";
-@import "../../../../style/utils.module.less";
-
-.container {
- display: flex;
- flex-direction: column;
- position: relative;
- width: 100%;
-
- > nav {
- margin-bottom: 30px;
- }
-}