[OnSalePanel] 버그 수정

Detail Notes :

1. category 변경 시 virtualGridList 정렬되지 않는 문제 수정
2. category 변경 시 last-focused 삭제 되지 않는 문제 수정
This commit is contained in:
younghoon100.park
2024-02-16 16:39:39 +09:00
parent 4109bfc81d
commit 7aa038ddb6
3 changed files with 27 additions and 4 deletions

View File

@@ -35,7 +35,7 @@ export default memo(function CategoryNavItem({
)}
key={"categoryInfo-" + index}
onClick={() => handleClick(categoryCode)}
spotlightId={"spotlightId-" + currentCategoryCode}
spotlightId={"spotlightId-" + categoryCode}
{...rest}
>
<div>

View File

@@ -66,8 +66,9 @@ export default function OnSalePanel() {
/>
<TBody className={css.tBody} cbScrollTo={getScrollTo}>
{saleInfos &&
saleInfos.map(({ saleNm, saleProductInfos }, index) => (
saleInfos.map(({ saleNm, saleProductInfos, expsOrd }, index) => (
<OnSaleProductList
exposureOrder={expsOrd}
key={"saleInfo-" + index}
saleName={saleNm}
saleProductInfos={saleProductInfos}

View File

@@ -1,8 +1,13 @@
import React, { useCallback } from "react";
import React, { useCallback, useEffect } from "react";
import { VirtualGridList } from "@enact/sandstone/VirtualList";
import {
getContainerId,
setContainerLastFocusedElement,
} from "@enact/spotlight/src/container";
import SectionTitle from "../../../components/SectionTitle/SectionTitle";
import useScrollTo from "../../../hooks/useScrollTo";
import { scaleH, scaleW } from "../../../utils/helperMethods";
import OnSaleProductItem from "../OnSaleProductList/OnSaleProductItem/OnSaleProductItem";
import css from "./OnSaleProductList.module.less";
@@ -14,10 +19,26 @@ const LIST_ITEM_CONF = {
};
export default function OnSaleProductList({
exposureOrder,
saleName,
saleProductInfos,
...rest
}) {
const { getScrollTo, scrollLeft } = useScrollTo();
useEffect(() => {
const containerId = "container-" + exposureOrder;
const container = document.getElementById(containerId);
if (container) {
const childrenId = getContainerId(container?.children[1]);
childrenId &&
setContainerLastFocusedElement(null, [containerId, childrenId]);
}
scrollLeft();
}, [saleProductInfos]);
const renderItem = useCallback(
({ index, ...rest }) => {
return (
@@ -32,11 +53,12 @@ export default function OnSaleProductList({
);
return (
<div className={css.container} {...rest}>
<div className={css.container} id={"container-" + exposureOrder} {...rest}>
{saleName && <SectionTitle title={saleName} />}
{saleProductInfos && (
<VirtualGridList
cbScrollTo={getScrollTo}
className={css.virtualGridList}
dataSize={saleProductInfos.length}
direction="horizontal"