Skip to content

feat: getFeedsByIsbn API, PasswordModal API 연동#162

Merged
ho0010 merged 8 commits into
developfrom
feat/api-rooms
Aug 18, 2025
Merged

feat: getFeedsByIsbn API, PasswordModal API 연동#162
ho0010 merged 8 commits into
developfrom
feat/api-rooms

Conversation

@ho0010
Copy link
Copy Markdown
Collaborator

@ho0010 ho0010 commented Aug 18, 2025

📝작업 내용

  • getFeedsByIsbn API 연동
  • PasswordModal API 연동에 따른 로직 적용
  • min-height 적용

Summary by CodeRabbit

  • 신기능

    • 도서 검색 결과에 실제 피드 연동(정렬: 최신/인기, 무한 스크롤, 로딩 표시, 저장 상태 반영).
    • 비공개 모임 참가 시 비밀번호 모달로 참여 흐름 제공(닫기/참여 콜백).
  • 리팩터

    • 비공개 모임은 잠금 도서 이미지로 표시.
    • 그룹 상세에서 마감 D-day 대신 마감 일자 직접 표시.
    • 검색 결과의 모임 카드는 진행 중으로 통일 표기.
  • 스타일

    • 상세/검색 그룹 레이아웃 상단 정렬 및 전체 높이 확보.
    • 마감/종료 문구 간결화.

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Aug 18, 2025

Caution

Review failed

The pull request is closed.

Walkthrough

ISBN 기반 피드 조회 API 클라이언트를 신설하고, 검색 도서 페이지에 실제 피드 연동(페이지네이션·무한스크롤)을 도입했다. 비공개 그룹 참여 흐름에 비밀번호 모달을 통합하고, 그룹 상세/검색/카드 컴포넌트의 표시 텍스트·이미지·정렬·레이아웃 스타일을 일부 조정했다.

Changes

Cohort / File(s) Summary
API: Feeds by ISBN
src/api/feeds/getFeedsByIsbn.ts
새 API 모듈 추가. 타입 정의(FeedSort, FeedItem, GetFeedsByIsbnResponse)와 함수 getFeedsByIsbn 구현(정렬·커서 쿼리, URL 인코딩, apiClient GET, data 반환).
SearchBook: 피드 연동/무한스크롤
src/pages/searchBook/SearchBook.tsx
목업 피드 제거, getFeedsByIsbn 연동. 초기/추가 로드, nextCursor 기반 페이지네이션, IntersectionObserver로 무한스크롤, 정렬 매핑 추가, 저장 토글 API 연동, 로딩 UI 추가. 배너 Intro 섹션/모달 연동.
GroupDetail: 비밀번호 모달 통합 및 UI 변경
src/pages/groupDetail/GroupDetail.tsx, src/pages/groupDetail/GroupDetail.styled.ts
비공개 그룹 참여 시 PasswordModal 표시 및 onJoined로 상태 갱신. D-day 표시를 recruitEndDate 직접 표시로 교체. 레이아웃 정렬 변경 및 책 소개 3줄 클램프.
PasswordModal: 콜백 기반 흐름
src/components/group/PasswordModal.tsx
Props에 onClose, onJoined 추가. 라우터 네비게이션 제거, 성공 시 onClose→onJoined 호출. 입력·백스페이스·포커스 로직 단순화. 스타일 소폭 조정.
Group 검색 결과 렌더링/자산 처리
src/components/search/GroupSearchResult.tsx, src/pages/groupSearch/GroupSearch.tsx
검색 결과의 GroupCard에 isOngoing을 항상 true로 전달. 비공개 방은 lockedBook.svg로 썸네일 대체(초기/추가 로드 모두). 히스토리 idx 캐스팅 추가.
GroupCard: 텍스트/스타일 미세 조정
src/components/group/GroupCard.tsx
마감/종료 텍스트에서 “일 뒤” 제거. 비-main 카드 border 값 변경(''로). JSX 간결화.
SearchBook 그룹 탭 레이아웃
src/pages/searchBook/SearchBookGroup.tsx
컨테이너 정렬 center→flex-start, min-height: 100vh 추가.

Sequence Diagram(s)

sequenceDiagram
  participant UI as SearchBook Page
  participant API as getFeedsByIsbn
  participant Server as Backend

  UI->>API: loadFirstFeeds(isbn, sort='like', cursor=null)
  API->>Server: GET /feeds/related-books/{isbn}?sort=like
  Server-->>API: {feeds, nextCursor, isLast}
  API-->>UI: data
  UI->>UI: 렌더 feeds, last item에 observer 등록

  UI->>UI: last item viewport 진입
  UI->>API: loadMore(isbn, sort, nextCursor)
  API->>Server: GET ...?cursor=nextCursor
  Server-->>API: 다음 페이지
  API-->>UI: data
  UI->>UI: append feeds, 갱신된 observer 설정
Loading
sequenceDiagram
  participant User as 사용자
  participant GD as GroupDetail
  participant PM as PasswordModal
  participant BE as Backend

  User->>GD: 비공개 그룹 참여 클릭
  GD->>PM: 모달 열기
  User->>PM: 비밀번호 입력 완료
  PM->>BE: POST /join (roomId, password)
  BE-->>PM: 성공(룸 참여)
  PM->>GD: onJoined(roomId), onClose()
  GD->>GD: isJoining=true, memberCount 업데이트
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related PRs

Suggested labels

✨ Feature, 📬 API, 🎨 Html&css

Suggested reviewers

  • heeeeyong
  • ljh130334

Poem

토끼는 책등 타고 폴짝, ISBN 길을 따라
좋아요와 최신순, 피드가 줄줄이 열려나
잠긴 방엔 살짝 두드려, 비번 한 칸씩 콩콩콩
문이 열리면 깡총깡총, 친구 늘어 나는 중
오늘도 스크롤 끝에서, 다음 모험을 만나! 🐇📚

Tip

🔌 Remote MCP (Model Context Protocol) integration is now available!

Pro plan users can now connect to remote MCP servers from the Integrations page. Connect with popular remote MCPs such as Notion and Linear to add more context to your reviews and chats.


📜 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 3b20008 and a787da9.

⛔ Files ignored due to path filters (1)
  • src/assets/books/lockedBook.svg is excluded by !**/*.svg
📒 Files selected for processing (9)
  • src/api/feeds/getFeedsByIsbn.ts (1 hunks)
  • src/components/group/GroupCard.tsx (2 hunks)
  • src/components/group/PasswordModal.tsx (4 hunks)
  • src/components/search/GroupSearchResult.tsx (1 hunks)
  • src/pages/groupDetail/GroupDetail.styled.ts (2 hunks)
  • src/pages/groupDetail/GroupDetail.tsx (9 hunks)
  • src/pages/groupSearch/GroupSearch.tsx (4 hunks)
  • src/pages/searchBook/SearchBook.tsx (8 hunks)
  • src/pages/searchBook/SearchBookGroup.tsx (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 feat/api-rooms

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
🪧 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.

@vercel
Copy link
Copy Markdown

vercel Bot commented Aug 18, 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 18, 2025 4:46pm

@ho0010 ho0010 merged commit f741c33 into develop Aug 18, 2025
2 of 3 checks passed
@heeeeyong heeeeyong added ✨ Feature 기능 개발 📬 API 서버 API 통신 labels Aug 18, 2025
@ho0010 ho0010 deleted the feat/api-rooms branch September 1, 2025 09:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

📬 API 서버 API 통신 ✨ Feature 기능 개발

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants