Skip to content

develp branch 작업내용 머지 : develop -> main#151

Merged
heeeeyong merged 27 commits intomainfrom
develop
Aug 17, 2025
Merged

develp branch 작업내용 머지 : develop -> main#151
heeeeyong merged 27 commits intomainfrom
develop

Conversation

@heeeeyong
Copy link
Collaborator

@heeeeyong heeeeyong commented Aug 17, 2025

이하동일

Summary by CodeRabbit

  • New Features
    • 메모리 게시글/투표 좋아요 기능 추가 및 서버 연동 오류 메시지 제공
    • 비공개 그룹 참여용 4자리 비밀번호 입력 모달 도입
    • 그룹 검색: 디바운스 적용, 무한 스크롤 로딩/끝 문구, 최근 검색어 연동
    • 메모리 경로를 /rooms/{id}/memory로 통합 이동
    • 기록/투표 작성: 책 페이지 정보 자동 로드, 총평 가능 여부 반영, 유효성 검사·스낵바 오류 안내
    • 마이페이지 로그아웃 동작 추가
  • Style
    • 피드 탭바에 슬라이딩 언더라인 인디케이터 추가
    • 그룹 검색 결과에 로딩/종료 상태 시각적 개선

ljh130334 and others added 27 commits August 16, 2025 15:17
브랜치 히스토리 동기화: main -> develop
feat: 책 페이지 정보 조회 API 연동 구현 및 일부 로직 수정
feat: 방 게시물(기록,투표) 좋아요 상태변경 API 연동 구현
feat: search 로직 변경, 무한 스크롤 추가
feat: 비번방 입장 모달 구현
feat: 내 띱 목록 API 연동 완료
@vercel
Copy link

vercel bot commented Aug 17, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Preview Comments Updated (UTC)
thip Ready Ready Preview Comment Aug 17, 2025 7:41pm

@coderabbitai
Copy link

coderabbitai bot commented Aug 17, 2025

Caution

Review failed

The pull request is closed.

Walkthrough

새 API/타입 추가와 연동으로 좋아요 토글, 방 비밀번호 검증/참여, 도서 페이지 정보 조회를 도입했다. 메모리/투표 작성 흐름이 API 기반으로 전환되고, 검색은 인터섹션 옵저버 기반 무한 스크롤로 변경되었다. 일부 라우트와 정렬 키, 타입/프로프가 갱신되었고 UI 세부 스타일이 조정되었다.

Changes

Cohort / File(s) Summary
룸 포스트 좋아요 기능 도입
src/api/roomPosts/postRoomPostLike.ts, src/types/roomPostLike.ts, src/components/memory/RecordItem/RecordItem.tsx, src/types/memory.ts
좋아요 API/타입 추가, Record 타입에 isLiked 반영, RecordItem에서 서버 응답 기반 좋아요 토글 및 에러 코드 처리/스낵바 연동.
도서 페이지 정보 조회 및 작성 플로우 연동
src/api/rooms/getBookPage.ts, src/pages/recordwrite/RecordWrite.tsx, src/pages/pollwrite/PollWrite.tsx, src/components/recordwrite/PageRangeSection.tsx
/rooms/{roomId}/book-page 조회 추가. RecordWrite/PollWrite가 API 데이터(total/recent/isOverviewPossible) 사용, 로딩/에러 스낵바 처리, 총평 가능 여부 반영. PageRangeSection에 isOverviewPossible 프로프 추가.
메모리 타입/의존성 정리
src/pages/memory/Memory.tsx, src/components/memory/MemoryContent/MemoryContent.tsx, src/components/memory/MemoryContent/RecordList.tsx, src/components/memory/RecordItem/PollRecord.tsx
Record/PollOption을 공용 타입으로 이전 사용. Memory 변환 로직에 isLiked 포함. MemoryContent 프로프에 currentUserPage 추가. 임포트 경로 정리.
검색 무한 스크롤 전환
src/components/search/GroupSearchResult.tsx, src/pages/groupSearch/GroupSearch.tsx
ResultType 도입, isLast/onLoadMore 제거 후 isLoadingMore/hasMore/lastRoomElementCallback로 전환. IntersectionObserver 기반 페이지네이션과 상태 관리/클린업 추가.
팔로잉 응답 필드명 변경 반영
src/api/users/getRecentFollowing.ts, src/components/feed/FollowList.tsx
recentWriters → myFollowingUsers로 응답 필드명 변경 및 컴포넌트 상태/매핑 업데이트.
비밀번호 모달 및 참여 요청
src/api/rooms/postPassword.ts, src/components/group/PasswordModal.tsx
방 비밀번호 검증 API 추가. 4자리 입력/자동 제출/백스페이스 이동/에러 처리 포함한 PasswordModal 추가, 성공 시 방 참여 및 이동.
탭바 표시 개선
src/components/feed/TabBar.tsx
활성 탭 하단 슬라이딩 언더라인 인디케이터 추가 및 애니메이션/스타일 조정.
정렬 키 명칭 변경
src/components/memory/SortDropdown.tsx, src/components/memory/RecordFilters/FilterButtons.tsx
'popular'→'like', 'comments'→'comment'로 타입/라벨 매핑 수정.
로그아웃 훅 도입 및 적용
src/hooks/useLogout.ts, src/pages/mypage/Mypage.tsx
useLogout 훅 추가(토큰 제거 후 루트로 이동). 마이페이지에 연동. 외부 링크 핸들러 갱신.
그룹 상세 라우팅 업데이트
src/pages/groupDetail/ParticipatedGroupDetail.tsx
메모리 관련 네비게이션 경로를 /rooms/{roomId}/memory로 변경. 댓글 섹션 이동 유지.
팝업 MoreMenu 확장
src/stores/usePopupStore.ts
MoreMenuProps에 onReport 옵션 추가(신고 엔트리 지원).

Sequence Diagram(s)

sequenceDiagram
  participant UI as RecordItem
  participant API as postRoomPostLike
  participant Server

  UI->>API: POST /room-posts/{postId}/likes {type, roomPostType}
  API->>Server: Request
  Server-->>API: { isSuccess, code, data:{isLiked} }
  API-->>UI: Response
  alt isSuccess
    UI->>UI: 상태 업데이트(isLiked, likeCount)
  else error
    UI->>UI: 코드 매핑 후 스낵바 표시
  end
Loading
sequenceDiagram
  participant User
  participant Modal as PasswordModal
  participant Auth as postPassword
  participant Join as postJoinRoom
  participant Router as navigate

  User->>Modal: 4자리 입력 완료
  Modal->>Auth: POST /rooms/{roomId}/password {password}
  alt matched
    Modal->>Join: POST /rooms/{roomId}/join
    alt join success
      Modal->>Router: navigate(/group/detail/{roomId})
    else join fail
      Modal->>Router: navigate(/group/detail/{roomId})
    end
  else not matched
    Modal->>Modal: 에러 표시 및 입력 리셋
  end
Loading
sequenceDiagram
  participant Page as GroupSearch
  participant List as GroupSearchResult
  participant API as getSearchRooms
  participant IO as IntersectionObserver

  Page->>API: 검색 1페이지(term, sort)
  API-->>Page: {rooms, nextCursor, isLast}
  Page->>List: props 전달(type, rooms, hasMore, callback)
  IO->>List: 마지막 아이템 교차
  List->>Page: lastRoomElementCallback 호출
  Page->>API: 다음 페이지(nextCursor)
  API-->>Page: 결과 병합
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~75 minutes

Possibly related PRs

Suggested labels

✨ Feature, 📬 API

Suggested reviewers

  • ljh130334
  • ho0010

Poem

(•ㅅ•)ノ ʕ•ᴥ•ʔ
탭 아래 반짝, 선이 춤추네—
메모리엔 좋아요, 딸깍-서버 OK!
비번 네 칸 슥슥, 방으로 점프!
책장 수치 불러와 총평 문 활짝.
검색은 살랑—끝이 보여도,
토끼는 스크롤 따라 폴짝폴짝. 🐇✨


📜 Recent review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled by default for public repositories
  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 4e658d5 and 34d785b.

📒 Files selected for processing (25)
  • src/api/roomPosts/postRoomPostLike.ts (1 hunks)
  • src/api/rooms/getBookPage.ts (1 hunks)
  • src/api/rooms/postPassword.ts (1 hunks)
  • src/api/users/getRecentFollowing.ts (1 hunks)
  • src/components/feed/FollowList.tsx (3 hunks)
  • src/components/feed/TabBar.tsx (2 hunks)
  • src/components/group/PasswordModal.tsx (1 hunks)
  • src/components/memory/MemoryContent/MemoryContent.tsx (2 hunks)
  • src/components/memory/MemoryContent/RecordList.tsx (1 hunks)
  • src/components/memory/RecordFilters/FilterButtons.tsx (1 hunks)
  • src/components/memory/RecordItem/PollRecord.tsx (1 hunks)
  • src/components/memory/RecordItem/RecordItem.tsx (6 hunks)
  • src/components/memory/SortDropdown.tsx (2 hunks)
  • src/components/recordwrite/PageRangeSection.tsx (1 hunks)
  • src/components/search/GroupSearchResult.tsx (6 hunks)
  • src/hooks/useLogout.ts (1 hunks)
  • src/pages/groupDetail/ParticipatedGroupDetail.tsx (1 hunks)
  • src/pages/groupSearch/GroupSearch.tsx (3 hunks)
  • src/pages/memory/Memory.tsx (8 hunks)
  • src/pages/mypage/Mypage.tsx (6 hunks)
  • src/pages/pollwrite/PollWrite.tsx (4 hunks)
  • src/pages/recordwrite/RecordWrite.tsx (4 hunks)
  • src/stores/usePopupStore.ts (1 hunks)
  • src/types/memory.ts (1 hunks)
  • src/types/roomPostLike.ts (1 hunks)
✨ Finishing Touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch develop

🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

CodeRabbit Commands (Invoked using PR/Issue comments)

Type @coderabbitai help to get the list of available commands.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Status, Documentation and Community

  • Visit our Status Page to check the current availability of CodeRabbit.
  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@heeeeyong heeeeyong merged commit 359f266 into main Aug 17, 2025
2 of 3 checks passed
@heeeeyong heeeeyong self-assigned this Aug 17, 2025
@heeeeyong heeeeyong added the 🌏 Deploy 배포 관련 label Aug 17, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

🌏 Deploy 배포 관련

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants