diff --git a/com.twin.app.shoptime/src/views/DetailPanel/ProductAllSection/ProductAllSection.jsx b/com.twin.app.shoptime/src/views/DetailPanel/ProductAllSection/ProductAllSection.jsx index ae871bc1..7cb40d02 100644 --- a/com.twin.app.shoptime/src/views/DetailPanel/ProductAllSection/ProductAllSection.jsx +++ b/com.twin.app.shoptime/src/views/DetailPanel/ProductAllSection/ProductAllSection.jsx @@ -584,6 +584,11 @@ export default function ProductAllSection({ [productType, themeProductInfo, themeProducts, selectedIndex, productInfo] ); + // ProductDescription 데이터 유무 확인 + const hasProductDescription = useMemo(() => { + return !!productData?.prdtDesc; + }, [productData?.prdtDesc]); + // 🆕 [251211] patnrId=21인 경우 QR 데이터 확인 useEffect(() => { if (productData?.patnrId === 21 || productData?.patnrId === '21') { @@ -1336,6 +1341,9 @@ export default function ProductAllSection({ ); const handleProductDetailsClick = useCallback(() => { + // 제품 설명 데이터가 없을 때 클릭 방지 + if (!hasProductDescription) return; + dispatch(minimizeModalMedia()); scrollToSection('scroll-marker-product-details'); @@ -1344,7 +1352,7 @@ export default function ProductAllSection({ setTimeout(() => { Spotlight.focus('product-description-content'); }, 100); - }, [scrollToSection, dispatch, handleIndicatorOptions]); + }, [scrollToSection, dispatch, handleIndicatorOptions, hasProductDescription]); const handleYouMayAlsoLikeClick = useCallback(() => { dispatch(minimizeModalMedia()); @@ -1961,16 +1969,18 @@ export default function ProductAllSection({ className={css.actionButtonsWrapper} spotlightId="product-info-button-container" > - - {$L('PRODUCT DETAILS')} - + {hasProductDescription && ( + + {$L('PRODUCT DETAILS')} + + )} {isReviewDataComplete && ( <> {/*