(() => { const { actions, EventManager, pageHelper } = ShopbySkin; const { initialize } = pageHelper.myPageHelper(); initialize(); let shopbyCommonData = {}; EventManager.on('PAGE_LOAD_COMPLETED', (commonData) => { shopbyCommonData = commonData; // 외부스크립트 등록 기능. 삭제금지 ShopbyExternalScript?.setPageScriptType('MY_PAGE'); }); EventManager.on('MY_ORDER_STATUS_CONTENT_LOADED', (data) => { // 외부스크립트 등록 기능. 삭제금지 ShopbyExternalScript?.setGlobalObjectSb(data); }); const containerEl = document.querySelector('[shopby-helper-key="my-page-helper-key"]'); const clickEventListener = (event) => { const actionType = event.target.closest('[shopby-action]')?.getAttribute('shopby-action'); const CLICK_EVENT_HANDLER_MAP = { LOGOUT: async () => { await actions.postSignOut(); location.href = '/'; }, GRADE_BENEFIT: () => { EventManager.fire('OPEN_LAYER_MODAL', { name: 'grade-benefit-guide', title: '등급혜택 안내', isFull: false, data: { commonData: shopbyCommonData, }, }); }, PRODUCT_LIKE_BTN: ({ event }) => { event?.preventDefault?.(); const btn = event.target.closest('[shopby-product-no]'); const productNo = Number(btn.getAttribute('shopby-product-no') ?? 0); actions.toggleLikeStatus({ productNo, onSuccess: (isLiked) => { if (isLiked) { btn.classList.add('is-active'); return; } btn.classList.remove('is-active'); }, }); }, INQUIRY_REGISTER: () => { EventManager.fire('OPEN_LAYER_MODAL', { name: 'personal-inquiry-form', title: `1:1문의 등록`, modalAddClass: 'personal-inquiry-form-modal', isFull: false, data: { isModify: false, commonData: shopbyCommonData, }, onClose: ({ reason }) => { if (reason === 'DID_SUBMIT') { EventManager.fire('MODAL_ALERT_OPEN', { noticeType: 'SUCCESS', message: '게시글이 저장되었습니다.', onClose: () => { location.reload(); }, }); } }, }); }, PRODUCT_INQUIRY_REGISTER: () => { EventManager.fire('OPEN_LAYER_MODAL', { name: 'product-inquiry-form', title: '상품문의', modalAddClass: 'product-inquiry-form-modal', isFull: false, data: { isSelectProduct: true, commonData: shopbyCommonData, }, onClose: ({ reason }) => { if (reason === 'DID_SUBMIT') { EventManager.fire('MODAL_ALERT_OPEN', { noticeType: 'SUCCESS', message: '상품문의가 등록됐습니다.', onClose: () => { location.reload(); }, }); } }, }); }, PRODUCT_REVIEW_REGISTER: () => { EventManager.fire('OPEN_LAYER_MODAL', { name: 'product-review-form', title: '상품후기', modalAddClass: 'product-review-form-modal', isFull: false, data: { isSelectProduct: true, }, onClose: ({ reason }) => { if (reason === 'DID_SUBMIT') { EventManager.fire('MODAL_ALERT_OPEN', { noticeType: 'success', message: '상품후기가 등록되었습니다.', onClose: () => { location.reload(); }, }); } }, }); }, }; CLICK_EVENT_HANDLER_MAP[actionType]?.({ event }); }; containerEl.addEventListener('click', clickEventListener); })();