fix: IntroPanel간헐적 Agree미작동 해결, termsIdMap 추가
This commit is contained in:
@@ -96,6 +96,7 @@ export default function HomeBanner({
|
||||
}, [dispatch]);
|
||||
|
||||
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",
|
||||
@@ -128,35 +129,76 @@ export default function HomeBanner({
|
||||
}, [termsData, termsLoading, isGnbOpened]);
|
||||
|
||||
const handleOptionalAgree = useCallback(() => {
|
||||
console.log("handleAgree Click");
|
||||
if (process.env.NODE_ENV === "development") {
|
||||
console.log("[HomeBanner] handleAgree Click");
|
||||
}
|
||||
|
||||
if (!termsIdMap || Object.keys(termsIdMap).length === 0) {
|
||||
if (process.env.NODE_ENV === "development") {
|
||||
console.error("[HomeBanner] termsIdMap이 없습니다:", termsIdMap);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
const requiredTermTypes = ["MST00401", "MST00402", "MST00405"];
|
||||
const missingTerms = requiredTermTypes.filter(
|
||||
(type) => !termsIdMap[type],
|
||||
);
|
||||
|
||||
if (missingTerms.length > 0) {
|
||||
if (process.env.NODE_ENV === "development") {
|
||||
console.error("[HomeBanner] 누락된 약관 타입:", missingTerms);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
const termsList = [];
|
||||
|
||||
if (termsIdMap["MST00401"]) {
|
||||
termsList.push(termsIdMap["MST00401"]); // 개인정보처리방침
|
||||
}
|
||||
if (termsIdMap["MST00402"]) {
|
||||
termsList.push(termsIdMap["MST00402"]); // 이용약관
|
||||
}
|
||||
if (termsIdMap["MST00405"]) {
|
||||
termsList.push(termsIdMap["MST00405"]); // 선택약관
|
||||
}
|
||||
|
||||
// 약관 동의할 항목들 (string array)
|
||||
const termsList = ["TID0000222", "TID0000223", "TID0000232"];
|
||||
// 동의하지 않을 항목들 (빈 배열)
|
||||
const notTermsList = [];
|
||||
console.log("OptionalTermsConfirm -약관 동의 API 호출 파라미터:", {
|
||||
termsList,
|
||||
notTermsList,
|
||||
});
|
||||
|
||||
if (process.env.NODE_ENV === "development") {
|
||||
console.log("[HomeBanner] 현재 termsIdMap:", termsIdMap);
|
||||
console.log("[HomeBanner] 약관 동의 API 호출 파라미터:", {
|
||||
termsList,
|
||||
notTermsList,
|
||||
});
|
||||
}
|
||||
|
||||
const callback = (response) => {
|
||||
if (response.retCode === "000" || response.retCode === 0) {
|
||||
console.log("약관 동의 성공:", response);
|
||||
// 약관 정보 갱신
|
||||
if (process.env.NODE_ENV === "development") {
|
||||
console.log("[HomeBanner] 약관 동의 성공:", response);
|
||||
}
|
||||
dispatch(fetchCurrentUserHomeTerms());
|
||||
} else {
|
||||
console.error("약관 동의 실패:", response);
|
||||
if (process.env.NODE_ENV === "development") {
|
||||
console.error("[HomeBanner] 약관 동의 실패:", response);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
console.log("OptionalTermsConfirm - 약관 동의 API 호출 payload:", {
|
||||
termsList,
|
||||
notTermsList,
|
||||
});
|
||||
if (process.env.NODE_ENV === "development") {
|
||||
console.log("[HomeBanner] 약관 동의 API 호출 payload:", {
|
||||
termsList,
|
||||
notTermsList,
|
||||
});
|
||||
}
|
||||
|
||||
dispatch(setMyPageTermsAgree({ termsList, notTermsList }, callback));
|
||||
}, [dispatch]);
|
||||
}, [dispatch, termsIdMap]);
|
||||
|
||||
const handleOptionalTermsClick = useCallback(() => {
|
||||
console.log("약관 자세히 보기 클릭");
|
||||
console.log("[HomeBanner] 약관 자세히 보기 클릭");
|
||||
setIsOptionalConfirmVisible(false);
|
||||
setIsOptionalTermsVisible(true);
|
||||
// 약관 상세 팝업을 띄우는 로직 추가
|
||||
@@ -165,10 +207,10 @@ export default function HomeBanner({
|
||||
const handleOptionalAgreeClick = useCallback(() => {
|
||||
handleOptionalAgree();
|
||||
setIsOptionalConfirmVisible(false);
|
||||
}, []);
|
||||
}, [handleOptionalAgree]);
|
||||
|
||||
const handleOptionalDeclineClick = useCallback(() => {
|
||||
console.log("거절/다음에 하기 버튼 클릭");
|
||||
console.log("[HomeBanner] 거절/다음에 하기 버튼 클릭");
|
||||
setIsOptionalConfirmVisible(false);
|
||||
// 거절 처리 로직 추가
|
||||
}, []);
|
||||
@@ -182,10 +224,10 @@ export default function HomeBanner({
|
||||
|
||||
// 선택약관 팝업 Agree
|
||||
const handleTermsPopupAgree = useCallback(() => {
|
||||
console.log("handleTermsPopupAgree");
|
||||
console.log("[HomeBanner] handleTermsPopupAgree");
|
||||
handleOptionalAgree();
|
||||
setIsOptionalTermsVisible(false);
|
||||
}, []);
|
||||
}, [handleOptionalAgree]);
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
const _handleShelfFocus = useCallback(() => {
|
||||
|
||||
Reference in New Issue
Block a user