[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:
@@ -76,7 +76,7 @@ export default function HomeBanner({ firstSpot, spotlightId, handleItemFocus, ha
|
|||||||
|
|
||||||
const selectTemplate = useMemo(() => {
|
const selectTemplate = useMemo(() => {
|
||||||
return homeTopDisplayInfo.shptmTmplCd;
|
return homeTopDisplayInfo.shptmTmplCd;
|
||||||
}, [homeTopDisplayInfo]);
|
}, [homeTopDisplayInfo.shptmTmplCd]);
|
||||||
|
|
||||||
const _handleItemFocus = useCallback(() => {
|
const _handleItemFocus = useCallback(() => {
|
||||||
if (handleItemFocus) {
|
if (handleItemFocus) {
|
||||||
@@ -112,16 +112,20 @@ export default function HomeBanner({ firstSpot, spotlightId, handleItemFocus, ha
|
|||||||
|
|
||||||
// 선택약관 팝업 표시 여부 ===================================================
|
// 선택약관 팝업 표시 여부 ===================================================
|
||||||
const shouldShowOptionalTermsPopup = useMemo(() => {
|
const shouldShowOptionalTermsPopup = useMemo(() => {
|
||||||
console.log('[HomeBanner] Step 1: 상태 확인', {
|
if (process.env.NODE_ENV === 'development') {
|
||||||
termsLoading,
|
console.log('[HomeBanner] Step 1: 상태 확인', {
|
||||||
isGnbOpened,
|
termsLoading,
|
||||||
optionalTermsAvailable,
|
isGnbOpened,
|
||||||
optionalTermsPopupFlow,
|
optionalTermsAvailable,
|
||||||
});
|
optionalTermsPopupFlow,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
// 1. 기본 조건 확인
|
// 1. 기본 조건 확인
|
||||||
if (termsLoading || isGnbOpened || !optionalTermsAvailable) {
|
if (termsLoading || isGnbOpened || !optionalTermsAvailable) {
|
||||||
console.log('[HomeBanner] Early return: 기본 조건 불만족');
|
if (process.env.NODE_ENV === 'development') {
|
||||||
|
console.log('[HomeBanner] Early return: 기본 조건 불만족');
|
||||||
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -131,28 +135,44 @@ export default function HomeBanner({ firstSpot, spotlightId, handleItemFocus, ha
|
|||||||
optionalTermsPopupFlow.userDecision ||
|
optionalTermsPopupFlow.userDecision ||
|
||||||
optionalTermsPopupFlow.agreedInSession
|
optionalTermsPopupFlow.agreedInSession
|
||||||
) {
|
) {
|
||||||
console.log('[HomeBanner] Early return: 이미 처리됨', optionalTermsPopupFlow);
|
if (process.env.NODE_ENV === 'development') {
|
||||||
|
console.log('[HomeBanner] Early return: 이미 처리됨', optionalTermsPopupFlow);
|
||||||
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 3. 서버 데이터 확인
|
// 3. 서버 데이터 확인
|
||||||
const terms = termsData && termsData.data && termsData.data.terms;
|
const terms = termsData && termsData.data && termsData.data.terms;
|
||||||
console.log('[HomeBanner] Step 2: termsData 확인', terms);
|
if (process.env.NODE_ENV === 'development') {
|
||||||
|
console.log('[HomeBanner] Step 2: termsData 확인', terms);
|
||||||
|
}
|
||||||
if (!terms) {
|
if (!terms) {
|
||||||
console.log('[HomeBanner] Early return: terms가 존재하지 않음');
|
if (process.env.NODE_ENV === 'development') {
|
||||||
|
console.log('[HomeBanner] Early return: terms가 존재하지 않음');
|
||||||
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
const optionalTerm = terms.find((term) => term.trmsTpCd === 'MST00405');
|
const optionalTerm = terms.find((term) => term.trmsTpCd === 'MST00405');
|
||||||
console.log('[HomeBanner] Step 3: optionalTerm 검색 결과', optionalTerm);
|
if (process.env.NODE_ENV === 'development') {
|
||||||
|
console.log('[HomeBanner] Step 3: optionalTerm 검색 결과', optionalTerm);
|
||||||
|
}
|
||||||
|
|
||||||
const result = optionalTerm
|
const result = optionalTerm
|
||||||
? optionalTerm.trmsPopFlag === 'Y' && optionalTerm.trmsAgrFlag === 'N'
|
? optionalTerm.trmsPopFlag === 'Y' && optionalTerm.trmsAgrFlag === 'N'
|
||||||
: false;
|
: false;
|
||||||
|
|
||||||
console.log('[HomeBanner] Step 4: 최종 결과', result);
|
if (process.env.NODE_ENV === 'development') {
|
||||||
|
console.log('[HomeBanner] Step 4: 최종 결과', result);
|
||||||
|
}
|
||||||
return 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));
|
dispatch(updateOptionalTermsAgreement(true));
|
||||||
// 로컬 상태도 업데이트 (기존 로직 유지)
|
// 로컬 상태도 업데이트 (기존 로직 유지)
|
||||||
setOptionalTermsAgreed(true);
|
setOptionalTermsAgreed(true);
|
||||||
console.log('###test pjh ___ 2');
|
|
||||||
} else {
|
} else {
|
||||||
if (process.env.NODE_ENV === 'development') {
|
if (process.env.NODE_ENV === 'development') {
|
||||||
console.error('[HomeBanner] 약관 동의 실패:', response);
|
console.error('[HomeBanner] 약관 동의 실패:', response);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
console.log('###test pjh ___ 1', introTermsAgree);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
if (process.env.NODE_ENV === 'development') {
|
if (process.env.NODE_ENV === 'development') {
|
||||||
@@ -229,7 +247,9 @@ export default function HomeBanner({ firstSpot, spotlightId, handleItemFocus, ha
|
|||||||
}, [dispatch, termsIdMap]);
|
}, [dispatch, termsIdMap]);
|
||||||
|
|
||||||
const handleOptionalTermsClick = useCallback(() => {
|
const handleOptionalTermsClick = useCallback(() => {
|
||||||
console.log('[HomeBanner] 약관 자세히 보기 클릭');
|
if (process.env.NODE_ENV === 'development') {
|
||||||
|
console.log('[HomeBanner] 약관 자세히 보기 클릭');
|
||||||
|
}
|
||||||
setIsOptionalConfirmVisible(false);
|
setIsOptionalConfirmVisible(false);
|
||||||
setIsOptionalTermsVisible(true);
|
setIsOptionalTermsVisible(true);
|
||||||
// 약관 상세 팝업을 띄우는 로직 추가
|
// 약관 상세 팝업을 띄우는 로직 추가
|
||||||
@@ -248,7 +268,9 @@ export default function HomeBanner({ firstSpot, spotlightId, handleItemFocus, ha
|
|||||||
}, [handleOptionalAgree]);
|
}, [handleOptionalAgree]);
|
||||||
|
|
||||||
const handleOptionalDeclineClick = useCallback(() => {
|
const handleOptionalDeclineClick = useCallback(() => {
|
||||||
console.log('[HomeBanner] 거절/다음에 하기 버튼 클릭');
|
if (process.env.NODE_ENV === 'development') {
|
||||||
|
console.log('[HomeBanner] 거절/다음에 하기 버튼 클릭');
|
||||||
|
}
|
||||||
// ✅ 거절 상태 업데이트
|
// ✅ 거절 상태 업데이트
|
||||||
dispatch(updateOptionalTermsAgreement(false));
|
dispatch(updateOptionalTermsAgreement(false));
|
||||||
setIsOptionalConfirmVisible(false);
|
setIsOptionalConfirmVisible(false);
|
||||||
@@ -263,7 +285,9 @@ export default function HomeBanner({ firstSpot, spotlightId, handleItemFocus, ha
|
|||||||
|
|
||||||
// 선택약관 팝업 Agree
|
// 선택약관 팝업 Agree
|
||||||
const handleTermsPopupAgree = useCallback(() => {
|
const handleTermsPopupAgree = useCallback(() => {
|
||||||
console.log('[HomeBanner] handleTermsPopupAgree');
|
if (process.env.NODE_ENV === 'development') {
|
||||||
|
console.log('[HomeBanner] handleTermsPopupAgree');
|
||||||
|
}
|
||||||
handleOptionalAgree();
|
handleOptionalAgree();
|
||||||
setIsOptionalTermsVisible(false);
|
setIsOptionalTermsVisible(false);
|
||||||
}, [handleOptionalAgree]);
|
}, [handleOptionalAgree]);
|
||||||
|
|||||||
@@ -164,11 +164,6 @@ export default function RandomUnit({
|
|||||||
location: bannerData.banrLctnNo,
|
location: bannerData.banrLctnNo,
|
||||||
};
|
};
|
||||||
dispatch(sendLogTotalRecommend(logParams));
|
dispatch(sendLogTotalRecommend(logParams));
|
||||||
if (bannerClick) {
|
|
||||||
console.log('###bannerClick', logParams);
|
|
||||||
} else {
|
|
||||||
console.log('###bannerShow', logParams);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
[dispatch, nowMenu, curationId, curationTitle]
|
[dispatch, nowMenu, curationId, curationTitle]
|
||||||
@@ -223,10 +218,7 @@ export default function RandomUnit({
|
|||||||
const onBlur = useCallback(() => {
|
const onBlur = useCallback(() => {
|
||||||
setIsFocused(false);
|
setIsFocused(false);
|
||||||
clearTimeout(timerRef.current);
|
clearTimeout(timerRef.current);
|
||||||
|
|
||||||
console.log('[RandomUnit] onBlur');
|
|
||||||
// dispatch(finishVideoPreview());
|
// dispatch(finishVideoPreview());
|
||||||
console.log('[RandomUnit] finishVideoPreview');
|
|
||||||
}, [isFocused]);
|
}, [isFocused]);
|
||||||
|
|
||||||
// DSP00501 : Featured Brands
|
// DSP00501 : Featured Brands
|
||||||
|
|||||||
@@ -183,14 +183,9 @@ export default function RollingUnit({
|
|||||||
...newParams,
|
...newParams,
|
||||||
};
|
};
|
||||||
dispatch(sendLogTotalRecommend(logParams));
|
dispatch(sendLogTotalRecommend(logParams));
|
||||||
if (bannerClick) {
|
|
||||||
console.log('###bannerClick', logParams);
|
|
||||||
} else {
|
|
||||||
console.log('###bannerShow', logParams);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
[nowMenu, rollingDataRef, imageBannerClick]
|
[dispatch, nowMenu, curationId, curationTitle]
|
||||||
);
|
);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
|||||||
Reference in New Issue
Block a user