fix: 선택약관 미존재 조건 반영

This commit is contained in:
djaco
2025-07-03 10:45:17 +09:00
parent 56bfac5c95
commit b993b2ebec
8 changed files with 398 additions and 51 deletions

View File

@@ -146,11 +146,16 @@ export default function HomeBanner({
const termsData = useSelector((state) => state.home.termsData);
const termsIdMap = useSelector((state) => state.home.termsIdMap);
const optionalTermsData = useSelector((state) =>
state.home.termsData?.data?.terms.find(
(term) => term.trmsTpCd === "MST00405",
),
);
const optionalTermsAvailable = useSelector((state) => state.home.optionalTermsAvailable);
const optionalTermsData = useSelector((state) => {
// Chromium68 호환성을 위해 Optional Chaining 제거
if (state.home.termsData && state.home.termsData.data && state.home.termsData.data.terms) {
return state.home.termsData.data.terms.find(
(term) => term.trmsTpCd === "MST00405"
);
}
return null;
});
const termsLoading = useSelector((state) => state.common.termsLoading);
const isGnbOpened = useSelector((state) => state.common.isGnbOpened);
// 선택약관 동의여부
@@ -166,13 +171,21 @@ export default function HomeBanner({
// 선택약관 팝업 표시 여부 ===================================================
const shouldShowOptionalTermsPopup = useMemo(() => {
console.log('[HomeBanner] Step 1: termsLoading, isGnbOpened, optionalTermsAgreed 상태 확인', { termsLoading, isGnbOpened, optionalTermsAgreed });
if (termsLoading || isGnbOpened || optionalTermsAgreed) {
console.log('[HomeBanner] Early return: 조건 불만족 (termsLoading || isGnbOpened || optionalTermsAgreed)');
console.log('[HomeBanner] Step 1: 상태 확인', {
termsLoading,
isGnbOpened,
optionalTermsAgreed,
optionalTermsAvailable
});
// optionalTermsAvailable = false면 팝업 표시 안함
if (termsLoading || isGnbOpened || optionalTermsAgreed || !optionalTermsAvailable) {
console.log('[HomeBanner] Early return: 조건 불만족');
return false;
}
const terms = termsData?.data?.terms;
// Chromium68 호환성을 위해 Optional Chaining 제거
const terms = termsData && termsData.data && termsData.data.terms;
console.log('[HomeBanner] Step 2: termsData 확인', terms);
if (!terms) {
console.log('[HomeBanner] Early return: terms가 존재하지 않음');
@@ -188,7 +201,7 @@ export default function HomeBanner({
console.log('[HomeBanner] Step 4: 최종 결과', result);
return result;
}, [termsData, termsLoading, isGnbOpened, optionalTermsAgreed]);
}, [termsData, termsLoading, isGnbOpened, optionalTermsAgreed, optionalTermsAvailable]);
// 선택약관 팝업 표시 여부 ===================================================