(() => {
const {
EventManager,
pageHelper,
utils: { handleFocusEvent, isSignedIn },
} = ShopbySkin;
if (isSignedIn()) {
if (!document.referrer || location.href === document.referrer) {
history.back();
return;
}
location.href = document.referrer;
}
const findPasswordHelper = pageHelper.findPasswordHelper();
const containerEl = document.querySelector(
'[shopby-helper-key="find-password"]'
);
findPasswordHelper.initialize({
helperKey: "find-password",
});
const handleSubmit = async (helper) => {
const { findAccountBasicInformation } = helper.getState();
if (
!findAccountBasicInformation ||
!findAccountBasicInformation.memberId
) {
EventManager.fire("MODAL_ALERT_OPEN", {
noticeType: "CAUTION",
message: "아이디를 입력해주세요.",
onClose: () => {
handleFocusEvent(containerEl, "memberId");
},
});
return;
}
const { data } = await helper.fetchAccountFindPassword({
payload: { memberId: findAccountBasicInformation.memberId },
});
EventManager.fire("OPEN_LAYER_MODAL", {
name: "find-password-authentication",
data: { ...findAccountBasicInformation, ...data },
});
};
const handleCertificationMobileNo = async (helper) => {
const { findAccountBasicInformation } = helper.getState();
if (
!findAccountBasicInformation ||
!findAccountBasicInformation.memberId
) {
EventManager.fire("MODAL_ALERT_OPEN", {
noticeType: "CAUTION",
message: "아이디를 입력해주세요.",
onClose: () => {
handleFocusEvent(containerEl, "memberId");
},
});
return;
}
const { data: memberInfo } = await helper.fetchAccountFindPassword({
payload: { memberId: findAccountBasicInformation.memberId },
});
if (!memberInfo.hasCI) {
EventManager.fire("MODAL_ALERT_OPEN", {
noticeType: "CAUTION",
message:
"휴대폰 인증 회원이 아닙니다.
이메일 인증을 해주세요",
});
return;
}
EventManager.fire("OPEN_LAYER_MODAL", {
name: "kcp-sms-authentication",
data: { type: "FIND_PASSWORD" },
onClose: async ({ reason, state }) => {
if (reason === "DID_SUBMIT") {
const { data } = await helper.fetchProfileFindId({
payload: {
...state,
findMethod: "MOBILE",
},
});
if (!data?.length) {
EventManager.fire("MODAL_ALERT_OPEN", {
noticeType: "CAUTION",
message: "회원정보를 찾을 수 없습니다.",
});
return;
}
const certificatedMemberId = data[0].id;
if (
certificatedMemberId !== findAccountBasicInformation.memberId
) {
EventManager.fire("MODAL_ALERT_OPEN", {
noticeType: "CAUTION",
message: "회원정보가 일치하지 않습니다.",
});
return;
}
location.href = `/pages/sign-in/change-password.html?memberId=${findAccountBasicInformation.memberId}&key=${state.key}&findMethod=${findAccountBasicInformation.findMethod}`;
}
},
});
};
const clickEventListener = ({ target }) => {
const action = target.getAttribute("shopby-action");
switch (action) {
case "CERTIFICATION_MOBILE_NO":
handleCertificationMobileNo(findPasswordHelper);
break;
case "FIND_PASSWORD_SUBMIT":
handleSubmit(findPasswordHelper);
break;
default:
break;
}
};
containerEl.addEventListener("click", clickEventListener);
})();