Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feat: 마이피드 리스트 비공개/공개 토글기능 및 Ver3.0 디자인 구현 #256

Merged
merged 26 commits into from
Sep 19, 2024

Conversation

ParkSohyunee
Copy link
Contributor

@ParkSohyunee ParkSohyunee commented Sep 11, 2024

개요

  • 마이피드 Ver3.0 디자인을 구현했습니다.
  • 각 리스트 더보기 메뉴 중 리스트 공개/비공개 기능을 구현했습니다.

작업 사항

  • 마이피드 Ver3.0 디자인 구현
    • 스크롤 시 리스트 영역 상, 하단에 그라데이션 스타일 적용하는 기능 구현(Observer API)
  • 더보기 메뉴 중 리스트 공개/비공개 기능 구현
  • 더보기 메뉴 [삭제하기] 클릭 시, 컨펌모달 및 토스트 메세지 구현
    • 토스트 메세지 조건문을 수정하여, 토스트 타입에 따른 아이콘이 올바르게 보이도록 수정

참고 사항 (optional)

  • ListRecommendation 컴포넌트 item 없을 때 에러가 발생하여 수정하였습니다. @kanglocal

관련 이슈

1. 스크롤 시 리스트 정보 영역 고정 UI

  • Ver3.0 디자인은 전체 스크롤이 아닌 리스트 영역에만 스크롤이 적용되도록 구현해야 하는데, 실제 디자인을 적용해보니 보이는 리스트 영역이 짧고, 스크롤 시 상,하단부가 가려짐에 따라 터치 이슈가 있어서 contents 정보 부분에서 sticky되도록 구현했습니다.
스크린샷 2024-09-11 오후 5 02 50

2. 리스트가 있다는 것을 보여주는 상, 하단부 그라데이션 스타일 적용 고민 및 해결 방법

  • 스크롤영역에 그라데이션 스타일을 적용하는 방법으로
    • (1) 스크롤 이벤트를 사용하여 스크롤마다 감지하기(+. 쓰로틀링)
    • (2) 상, 하단부 각각에 target을 두고 Observer API로 감지하기
    • (3) 마지막 리스트를 감지하기 위해 각 리스트에 Observer API 연결하여 감지하기 의 방법을 적용해 보았으나, 디테일한 상황에서 그라데이션이 제대로 작동되지 않았음
  • 상단부 그라데이션은 sticky 영역을 Observser API을 사용하여 영역이 stuck(붙어있음)을 감지하여 그라데이션을 적용
    • ⭐️Observer API로 sticky 영역이 stuck 상태(pinned)일때 여부를 감지하기 위해서는 top: '-1px'을 줌으로써 달라붙는 sticky 요소에 벗어나는 순간을 체크할 수 있다. 참고
  • 하단부 그라데이션은 페이지 하단에 target을 Observer API로 감지하여 intersectionRatio 비율에 따라 그라데이션을 적용

스크린샷

스크롤 전

스크린샷 2024-09-11 오후 4 57 08

스크롤 중

스크린샷 2024-09-11 오후 4 57 23

스크롤 끝

스크린샷 2024-09-11 오후 4 57 36

리뷰어에게

  • 전체적으로 확인 부탁드립니다! 감사합니다. ✨

ParkSohyunee and others added 20 commits June 24, 2024 23:00
* feat: layout 컴포넌트의 metadata 수정 - 리스티웨이브 한글 타이틀 추가 및 description 수정

* Feat: 마이리스트, 콜라보리스트 페이지에 Dynamic 메타데이터 설정

* Feat: 리스트 상세 페이지에 Dynamic 메타데이터 설정

* Refactor: 메타데이터 별도 상수로 분리

* Feat: sitemap 설정 및 도메인 url 별도 상수로 분리

* Feat: 트렌딩리스트에 해당하는 리스트의 상세페이지가 sitemap에 추가되도록 설정

* Feat: robots.txt 설정

* Fix: sitemap.ts 트랜딩리스트 호출 방법을 fetch API로 수정

* Fix: sitemap.ts 트랜딩리스트 호출 로직 제거
* feat: 라벨 및 카테고리 클릭시 검색페이지로 이동

* fix: 리스트 상세조회, 카테고리 전체조회 API 수정에 따라 타입 변경
Copy link

vercel bot commented Sep 11, 2024

@ParkSohyunee is attempting to deploy a commit to the Eujin Ahn's projects Team on Vercel.

A member of the Team first needs to authorize it.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✔️ Ver2.0 파일입니다.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✔️ Ver2.0 파일입니다.

Comment on lines 21 to 24
deleteListSuccess: '리스트를 삭제했어요.',
deleteListError: '리스트 삭제에 실패했어요. 다시 시도해주세요.🥲',
visibilityListSuccess: '리스트 변경사항을 저장했어요.',
visibilityListError: '리스트 변경사항 저장에 실패했어요. 다시 시도해주세요.🥲',
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

리스트 삭제, 비공개/공개 시 토스트 메세지를 적용함에 따라 문구를 생각해 보았는데 괜찮은지 궁금합니다!

Copy link
Contributor

@Eugene-A-01 Eugene-A-01 Sep 18, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. 실패메시지들이 길이가 긴 것 같아서 걱정되는 점이 있습니다.
    폰 화면 크기에서 중간에 줄바꿈 되거나 하지는 않는지 확인해보면 좋을 것 같습니다!!
    만약 중간에 줄이 넘어가거나 한다면 "리스트 삭제에 실패했어요 (줄바꿈하고) 다시시도해주세요" 같이 줄을 직접 나눠주는 방법이나, 아예 글자수 줄이기 (리스트 삭제 실패🥲 등으로 글자수 줄여버리기) 고려하면 좋을 것 같아요~

  2. 비공개/공개 메시지는 리스트 변경사항 저장 보다는
    리스트 공개 여부 변경 완료 / 리스트 공개 여부 변경 실패 등의 메시지면 더 직관적일 것 같아요!

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

오! 유진님 너무 좋은 의견 감사합니다.🥹
글자수를 줄이는 방법으로 토스트 메세지를 수정하였고, 비공개/공개 여부도 변경사항 대신 직관적인 메세지로 변경하였는데 더 직관적으로 보이네요✨👍

Copy link
Contributor

@Eugene-A-01 Eugene-A-01 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

리스트 그라데이션 넣는 방법 제 부분에서도 잘 활용할 수 있을 것 같습니다!! 소현님 코드보고 항상 많이 배웁니다 정말 감사해요

Looks Great To Me!

position: 'sticky',
top: '1rem',
top: '-1px', // observer API로 sticky 영역이 stuck 상태임을 감지하기 위해
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이렇게도 감지할 수 있군요,, 여러 수 배워갑니다 소현님 !!

Comment on lines 21 to 25

if (type !== ('success' || 'error' || 'warning')) {
if (type === 'default') {
toast(txt, toastOption);
} else {
toast[type](txt, toastOption);
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

토스트 조건문을 수정하여, 토스트 타입에 따른 아이콘이 올바르게 보이도록 수정하였습니다.

  1. success
스크린샷 2024-09-18 오후 5 28 41
  1. error
스크린샷 2024-09-18 오후 5 28 26
  1. warning
스크린샷 2024-09-18 오후 5 28 08
  1. default (아이콘 없는 토스트 메세지 형태)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

헉 넘 감사합니다~!!!!!

@ParkSohyunee ParkSohyunee merged commit 4884280 into 8-Sprinters:dev Sep 19, 2024
1 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Design UI 수정 Feat 구현
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants