[251019] fix: HomeBanner Optimization-1

🕐 커밋 시간: 2025. 10. 19. 22:31:13

📊 변경 통계:
  • 총 파일: 3개
  • 추가: +38줄
  • 삭제: -33줄

📝 수정된 파일:
  ~ com.twin.app.shoptime/src/views/HomePanel/HomeBanner/HomeBanner.jsx
  ~ com.twin.app.shoptime/src/views/HomePanel/HomeBanner/RandomUnit.jsx
  ~ com.twin.app.shoptime/src/views/HomePanel/HomeBanner/RollingUnit.jsx

🔧 함수 변경 내용:
  📄 com.twin.app.shoptime/src/views/HomePanel/HomeBanner/HomeBanner.jsx (javascript):
    🔄 Modified: SpotlightContainerDecorator()
  📄 com.twin.app.shoptime/src/views/HomePanel/HomeBanner/RandomUnit.jsx (javascript):
    🔄 Modified: SpotlightContainerDecorator()
  📄 com.twin.app.shoptime/src/views/HomePanel/HomeBanner/RollingUnit.jsx (javascript):
    🔄 Modified: createPanelInfo()
This commit is contained in:
2025-10-19 22:31:15 +09:00
parent b31ff158c5
commit 0b3e3f9e4b
3 changed files with 44 additions and 33 deletions

View File

@@ -76,7 +76,7 @@ export default function HomeBanner({ firstSpot, spotlightId, handleItemFocus, ha
const selectTemplate = useMemo(() => {
return homeTopDisplayInfo.shptmTmplCd;
}, [homeTopDisplayInfo]);
}, [homeTopDisplayInfo.shptmTmplCd]);
const _handleItemFocus = useCallback(() => {
if (handleItemFocus) {
@@ -112,16 +112,20 @@ export default function HomeBanner({ firstSpot, spotlightId, handleItemFocus, ha
// 선택약관 팝업 표시 여부 ===================================================
const shouldShowOptionalTermsPopup = useMemo(() => {
if (process.env.NODE_ENV === 'development') {
console.log('[HomeBanner] Step 1: 상태 확인', {
termsLoading,
isGnbOpened,
optionalTermsAvailable,
optionalTermsPopupFlow,
});
}
// 1. 기본 조건 확인
if (termsLoading || isGnbOpened || !optionalTermsAvailable) {
if (process.env.NODE_ENV === 'development') {
console.log('[HomeBanner] Early return: 기본 조건 불만족');
}
return false;
}
@@ -131,28 +135,44 @@ export default function HomeBanner({ firstSpot, spotlightId, handleItemFocus, ha
optionalTermsPopupFlow.userDecision ||
optionalTermsPopupFlow.agreedInSession
) {
if (process.env.NODE_ENV === 'development') {
console.log('[HomeBanner] Early return: 이미 처리됨', optionalTermsPopupFlow);
}
return false;
}
// 3. 서버 데이터 확인
const terms = termsData && termsData.data && termsData.data.terms;
if (process.env.NODE_ENV === 'development') {
console.log('[HomeBanner] Step 2: termsData 확인', terms);
}
if (!terms) {
if (process.env.NODE_ENV === 'development') {
console.log('[HomeBanner] Early return: terms가 존재하지 않음');
}
return false;
}
const optionalTerm = terms.find((term) => term.trmsTpCd === 'MST00405');
if (process.env.NODE_ENV === 'development') {
console.log('[HomeBanner] Step 3: optionalTerm 검색 결과', optionalTerm);
}
const result = optionalTerm
? optionalTerm.trmsPopFlag === 'Y' && optionalTerm.trmsAgrFlag === 'N'
: false;
if (process.env.NODE_ENV === 'development') {
console.log('[HomeBanner] Step 4: 최종 결과', result);
}
return result;
}, [termsData, termsLoading, isGnbOpened, optionalTermsAvailable, optionalTermsPopupFlow]);
}, [
termsData.data?.terms,
termsLoading,
isGnbOpened,
optionalTermsAvailable,
optionalTermsPopupFlow,
]);
// 선택약관 팝업 표시 여부 ===================================================
@@ -209,13 +229,11 @@ export default function HomeBanner({ firstSpot, spotlightId, handleItemFocus, ha
dispatch(updateOptionalTermsAgreement(true));
// 로컬 상태도 업데이트 (기존 로직 유지)
setOptionalTermsAgreed(true);
console.log('###test pjh ___ 2');
} else {
if (process.env.NODE_ENV === 'development') {
console.error('[HomeBanner] 약관 동의 실패:', response);
}
}
console.log('###test pjh ___ 1', introTermsAgree);
};
if (process.env.NODE_ENV === 'development') {
@@ -229,7 +247,9 @@ export default function HomeBanner({ firstSpot, spotlightId, handleItemFocus, ha
}, [dispatch, termsIdMap]);
const handleOptionalTermsClick = useCallback(() => {
if (process.env.NODE_ENV === 'development') {
console.log('[HomeBanner] 약관 자세히 보기 클릭');
}
setIsOptionalConfirmVisible(false);
setIsOptionalTermsVisible(true);
// 약관 상세 팝업을 띄우는 로직 추가
@@ -248,7 +268,9 @@ export default function HomeBanner({ firstSpot, spotlightId, handleItemFocus, ha
}, [handleOptionalAgree]);
const handleOptionalDeclineClick = useCallback(() => {
if (process.env.NODE_ENV === 'development') {
console.log('[HomeBanner] 거절/다음에 하기 버튼 클릭');
}
// ✅ 거절 상태 업데이트
dispatch(updateOptionalTermsAgreement(false));
setIsOptionalConfirmVisible(false);
@@ -263,7 +285,9 @@ export default function HomeBanner({ firstSpot, spotlightId, handleItemFocus, ha
// 선택약관 팝업 Agree
const handleTermsPopupAgree = useCallback(() => {
if (process.env.NODE_ENV === 'development') {
console.log('[HomeBanner] handleTermsPopupAgree');
}
handleOptionalAgree();
setIsOptionalTermsVisible(false);
}, [handleOptionalAgree]);

View File

@@ -164,11 +164,6 @@ export default function RandomUnit({
location: bannerData.banrLctnNo,
};
dispatch(sendLogTotalRecommend(logParams));
if (bannerClick) {
console.log('###bannerClick', logParams);
} else {
console.log('###bannerShow', logParams);
}
}
},
[dispatch, nowMenu, curationId, curationTitle]
@@ -223,10 +218,7 @@ export default function RandomUnit({
const onBlur = useCallback(() => {
setIsFocused(false);
clearTimeout(timerRef.current);
console.log('[RandomUnit] onBlur');
// dispatch(finishVideoPreview());
console.log('[RandomUnit] finishVideoPreview');
}, [isFocused]);
// DSP00501 : Featured Brands

View File

@@ -183,14 +183,9 @@ export default function RollingUnit({
...newParams,
};
dispatch(sendLogTotalRecommend(logParams));
if (bannerClick) {
console.log('###bannerClick', logParams);
} else {
console.log('###bannerShow', logParams);
}
}
},
[nowMenu, rollingDataRef, imageBannerClick]
[dispatch, nowMenu, curationId, curationTitle]
);
useEffect(() => {