페어 활동 기록_Day13_한빈_상준 - boostcampwm-2022/web33-Mildo GitHub Wiki

✂️ 분배된 이슈

상세정보 모달 구현

  • 모달 기능 구현
  • 현재 장소 상태 메시지 UI 출력
  • 실시간 예상 인구수 UI 출력
  • 북마크 버튼 UI 출력
  • ‘내일 갈 거야’ 버튼 UI 출력
  • 로딩 중일 경우 스켈레톤 UI 출력

🚩 구현 목표

  • 상세정보 모달의 UI를 모두 구현
  • 사용 브랜치 : feature/modal-ui

🍀 세부 목표

  • 모달 관련 컴포넌트 분리
    • 레이아웃 → common 디렉터리
    • 내용물 → domain 디렉터리 / 하위 디렉터리
    • 디렉토리는 팀원들과 같이 구성하기로
  • styled-component를 사용하여 UI 스타일 적용
  • UI 관련 데이터를 어떻게 가져올까?
    • 하드 코딩
    • json 더미데이터를 기반으로 정보 출력
    • msw를 이용한 목업 서버 구축 (api 문서 작업 필요)
    • 우선 데이터 부분은 그대로 두기
  • 2단계 모달 보여줄 때 애니메이션 적용
  • 로딩 화면 구현하기 (스켈레톤 UI)

범용 모달 레이아웃 구현(#18)

  • ModalLayout 컴포넌트 생성하기
  • ModalLayout 컴포넌트 스타일링

1단계 상세정보 모달 UI 구현(#19)

  • 상단 화살표
  • 북마크
  • 혼잡도 메시지
  • 현재 인구 박스
  • 내일 갈 거야 버튼

2단계 상세정보 모달 UI 구현(#20)

  • 지난 24시간 인구 정보 그래프 박스
  • 내일 갈 거야 순위 박스

🖥️ 구현 내용

범용 모달 레이아웃 구현(#18)

  • 외부 라이브러리(react-modal) 고려
    • 모달을 열고 닫는 이벤트 등을 직접 구현하지 않아도 사용할 수 있음
    • mildo에서 총 3개의 모달을 만들어서 사용하는데 세세한 부분이 다름
      • 상세정보, 로그인, 사이드바가 각각 동작하는 이벤트가 다름
      • 로그인, 사이드바 같은 경우에는 회색 wrapper도 필요함
    • react-modal 서로 약간 다른 성격의 모달의 공통점을 쉽게 추상화할 수 있음
    • 그러나 참고 자료가 적어 types 설정에 어려움이 있음
    • 그냥 라이브러리 없이 구현하기로 결정
    • 참고 사이트

1단계 상세정보 모달 UI 구현(#19)

  • figam에서 만들어 놓은 이미지를 png로 다운로드 받아 사용
  • 내부에 저장하지 않고 사진 이미지를 외부 주소로 변경하여 사용
  • #18, #19에서 커밋 너무 안날림…

2단계 상세정보 모달 UI 구현(#20)

  • 1단계에서 2단계로 모달의 height가 커질 때 애니메이션을 적용
  • 2단계 모달의 하위 UI는 레이아웃만 설정

📖 학습 내용

  • transition의 동작 원리

🎸 기타

  • 좌표 정보 예외 처리 필요함

    // navigator.geolocation.watchPosition(
      //   pos => {
      //     // 액세스 허용
      //     console.log(pos);
      //   },
      //   error => {
      //     // 액세스 거부
      //     if (error.code === error.PERMISSION_DENIED) {
      //       console.log('액세스 요청을 거부하였습니다.');
      //     }
      //   }
      // );