Dev-FE-1 / team2-intranet-project-

토이프로젝트I - 2조 기업용 사내 인트라넷 개발
https://organic-meggy-toyproject-group2-intranet-solution-b9fd064a.koyeb.app/
0 stars 1 forks source link

refactor: UserInfo 클래스 컴포넌트 함수 분리 #217

Closed clara-shin closed 3 months ago

clara-shin commented 3 months ago

📝작업 내용

️⃣연관된 이슈

Github issue #213

스크린샷(에러발견)

스크린샷 2024-07-17 오후 2 51 21
setEditModeOrShowMode() {
    if (this.isEditOrRegisterPage()) {
      setSaveButtonElemDisable();

      // handleFocusOutEventForValidCheck와 checkIsFormAllInputsValid 호출 시 this 컨텍스트를 바인딩
      handleFocusOutEventForValidCheck(
        this.el,
        this.getFormInputData.bind(this), // 'this' 컨텍스트 바인딩 추가
        this.isAdminPage.bind(this), // 'this' 컨텍스트 바인딩 추가
        this.isEditOrRegisterPage.bind(this) // 'this' 컨텍스트 바인딩 추가
      );

      checkIsFormAllInputsValid(
        this.getFormInputData.bind(this), // 'this' 컨텍스트 바인딩 추가
        this.isAdminPage.bind(this), // 'this' 컨텍스트 바인딩 추가
        this.isEditOrRegisterPage.bind(this) // 'this' 컨텍스트 바인딩 추가
      );
      this.handleFormSubmitEvent();
    }
  }

onFormSubmit = async (event) => {
    event.preventDefault();
    const form = this.el.querySelector('.user-info');
    // checkIsFormAllInputsValid 호출 시 this 컨텍스트를 바인딩
    if (!checkIsFormAllInputsValid(
      this.getFormInputData.bind(this), // 'this' 컨텍스트 바인딩 추가
      this.isAdminPage.bind(this), // 'this' 컨텍스트 바인딩 추가
      this.isEditOrRegisterPage.bind(this) // 'this' 컨텍스트 바인딩 추가
    )) return;

    showDelaySubmitMessage(this.el);
    this.saveUserDataOnSessionStorage(form);
    await saveUserDataWhenFormSubmit(form, this.info);

    setTimeout(() => this.renderEmployeeListPageOrMyPage(), 500);
  };