(() => { const { EventManager, pageHelper, constants, constants: { PAGE }, utils: { handleFocusEvent, isSignedIn, moveToSafeReferrer }, } = ShopbySkin; if (isSignedIn()) { moveToSafeReferrer({ fallback: PAGE.MAIN }); return; } 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; } sessionStorage.setItem( constants.STORAGE_KEY.FIND_PASSWORD_AUTH_DATA, JSON.stringify({ memberId: findAccountBasicInformation.memberId, key: state.key, findMethod: findAccountBasicInformation.findMethod, }) ); location.href = '/pages/sign-in/change-password.html'; } }, }); }; 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); })();