/*! 6/21/2024, 11:42:05 AM */ /******/ (() => { // webpackBootstrap var __webpack_exports__ = {}; const { EventManager, pageHelper, utils: { handleFocusEvent, setLocalStorage, getLocalStorage, removeLocalStorage }, } = ShopbySkin; const signInHelper = pageHelper.signInHelper(); signInHelper.initialize({ helperKey: 'sign-in-form', }); const containerEl = document.querySelector('sign-in-form'); const getFromUrl = () => { const searchParams = new URLSearchParams(location.search); const from = searchParams.get('from'); const mainUrl = '/'; return decodeURIComponent(from || mainUrl); }; if (getLocalStorage('OPEN_ID_DORMANT_CALLBACK')) { const openIdDormantInformation = JSON.parse(getLocalStorage('OPEN_ID_DORMANT_CALLBACK') ?? '{}'); EventManager.fire('OPEN_LAYER_MODAL', { name: 'dormant-sign-in', data: { ...openIdDormantInformation?.dormantMemberResponse, accessToken: openIdDormantInformation?.accessToken, expireIn: openIdDormantInformation?.expireIn, }, onClose: ({ reason }) => { if (reason === 'DID_SUBMIT') { location.replace(getFromUrl()); removeLocalStorage('OPEN_ID_DORMANT_CALLBACK'); return; } signInHelper.signOut(); }, }); } const checkSignInValid = (params) => { if (!params || !params?.memberId) { return { field: 'memberId', message: '아이디를 입력하세요.', }; } if (!params?.password) { return { field: 'password', message: '비밀번호를 입력하세요.', }; } return { field: '', message: '', }; }; const showInvalidModal = (validResult) => { if (validResult.message) { EventManager.fire('MODAL_ALERT_OPEN', { noticeType: 'CAUTION', message: validResult.message, onClose: () => { handleFocusEvent({ containerEl, fields: validResult.field }); }, }); return false; } return true; }; // eslint-disable-next-line complexity const handleSignInSubmit = async (params) => { const memberIdEl = containerEl.querySelector('input[slot="memberId"]'); const passwordEl = containerEl.querySelector('input[slot="password"]'); const memberId = params?.memberId ?? memberIdEl.value.trim(); const password = params?.password ?? passwordEl.value.trim(); const validationResult = checkSignInValid({ memberId, password }); if (!showInvalidModal(validationResult)) { return; } const { data } = await signInHelper.signIn({ payload: { memberId, password, }, }); const saveIdCheckedEl = containerEl.querySelector('input[slot="saveIdChecked"]'); const saveIdChecked = params?.saveIdChecked ?? saveIdCheckedEl.checked; if (saveIdChecked) { setLocalStorage('SAVE_MEMBER_ID', params.memberId); } if (data.dormantMemberResponse) { EventManager.fire('OPEN_LAYER_MODAL', { name: 'dormant-sign-in', data: data.dormantMemberResponse, onClose: ({ reason }) => { if (reason === 'DID_SUBMIT') { location.replace(getFromUrl()); return; } signInHelper.signOut(); }, }); return; } if (data.daysFromLastPasswordChange > 90) { const nextUrl = `${location.origin}/pages/sign-in/expired-password-change-form.html`; location.replace(`${nextUrl}?from=${getFromUrl()}`); return; } if (data.accessToken) { const settings = { async: true, crossDomain: true, url: `https://shop-api.e-ncp.com/profile`, method: "GET", // HTTP 메서드 headers: { "Accept": "application/json", "Version": "1.0", "Platform": "PC", "Clientid": "DW9S/K2hejBxUFjiRDZJkA==", "Language": "ko", "Accesstoken": data.accessToken } }; try { const response = await fetch(settings.url, { method: settings.method, headers: settings.headers }); fetchedData = await response.json(); const memberGroupName = fetchedData.memberGroups[0].memberGroupName; const loginGroupName = document.querySelector('sign-in-form').querySelector('input[slot="memberGroup"]').value; // alert(memberGroupName); // alert(loginGroupName); message = ""; if (memberGroupName === "임직원") { if (memberGroupName === loginGroupName) { location.replace(getFromUrl()); } else { message = "임직원회원 로그인을 이용해 주세요."; } } else { if (loginGroupName === "임직원") { message = "일반회원 로그인을 이용해 주세요."; } else { location.replace(getFromUrl()); } } if (message !== "") { EventManager.fire('MODAL_ALERT_OPEN', { noticeType: 'CAUTION', message: `${message}`, onClose: () => { handleFocusEvent({ containerEl, fields: 'memberId' }); signInHelper.signOut(); }, }); return; } // if (memberGroupName !== loginGroupName) { // if (memberGroupName === "일반회원") { // message = "일반회원 로그인을 이용해 주세요."; // } else { // message = "임직원회원 로그인을 이용해 주세요."; // } // EventManager.fire('MODAL_ALERT_OPEN', { // noticeType: 'CAUTION', // message: `${message}`, // onClose: () => { // handleFocusEvent({ containerEl, fields: 'memberId' }); // signInHelper.signOut(); // // location.replace('/pages/sign-in/sign-in.html'); // }, // }); // return; // } else { // location.replace(getFromUrl()); // } } catch (error) { console.error('Error', error); } } }; const clickEventListener = ({ target }) => { const action = target.getAttribute('shopby-action'); if (action === 'SIGN_IN') { const { signInForm } = signInHelper.getState(); handleSignInSubmit(signInForm); } }; const keypressEventListener = ({ target, key }) => { const action = target.getAttribute('shopby-action'); if (key === 'Enter' && action === 'PASSWORD_KEYPRESS') { const { signInForm } = signInHelper.getState(); handleSignInSubmit({ memberId: signInForm.memberId, password: target.value.trim() }); } }; containerEl.addEventListener('click', clickEventListener); containerEl.addEventListener('keypress', keypressEventListener); /******/ })() ;