Skip to content

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

Merged
heeeeyong merged 49 commits into
mainfrom
develop
Aug 11, 2025
Merged

develp branch 작업내용 머지 : develop -> main#87
heeeeyong merged 49 commits into
mainfrom
develop

Conversation

@heeeeyong
Copy link
Copy Markdown
Collaborator

@heeeeyong heeeeyong commented Aug 11, 2025

이하동일

Summary by CodeRabbit

  • 신기능

    • 그룹 참여 상세 페이지와 그룹 멤버 페이지 추가
    • 핫토픽(투표) 캐러셀, 그룹 북 섹션, 기록 섹션, 코멘트 섹션 컴포넌트 추가
    • 댓글 답글 모달과 그룹 액션 바텀시트 지원
    • 사용자 검색에 디바운스 및 무한 스크롤 도입
    • 피드/댓글 좋아요·삭제 등 서버 연동 적용
  • 개선

    • 모달 오버레이/레이어링 스타일 개선 및 접근성 향상
    • 피드 상세: 댓글 실데이터 연동, 재로딩 지원, 게시물 삭제 플로우 개선
    • 작성 버튼 이동 경로 변경(/post/create), 탭 초기화 라우팅 연동
    • 마이페이지: 내 프로필 조회/편집 API 연동
  • 변경

    • 파비콘 경로 해상도 개선(루트 기준)
    • 장르명 변경: 과학 → 과학·IT

ljh130334 and others added 30 commits August 6, 2025 02:04
feat: 참여 후 모임방 상세 화면 구현
@vercel
Copy link
Copy Markdown

vercel Bot commented Aug 11, 2025

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
thip ✅ Ready (Inspect) Visit Preview 💬 Add feedback Aug 11, 2025 7:20am

@heeeeyong heeeeyong merged commit 7080697 into main Aug 11, 2025
1 check passed
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Aug 11, 2025

Caution

Review failed

The pull request is closed.

Walkthrough

댓글/피드/사용자 API 모듈을 대거 추가하고, 댓글·답글 컴포넌트와 모달/팝업 스토어를 리팩터링했습니다. 그룹 상세·멤버 목록 섹션과 관련 스타일/페이지를 신설했고, 마이페이지는 API 연동으로 전환했습니다. 검색은 디바운스 훅과 무한스크롤 기반으로 교체됐으며, 일부 프로퍼티/타입 정합성(닉네임, 프로필 등) 수정과 라우트/파비콘/장르 데이터가 갱신되었습니다.

Changes

Cohort / File(s) Summary
HTML/Static
index.html, public/genres.json
파비콘 경로를 루트상대(/assets/...)로 변경. 장르 JSON에서 과학 제목을 “과학·IT”로 수정.
API - Comments
src/api/comments/*
댓글 조회(getComments), 댓글 삭제(deleteComment), 댓글 좋아요(postLike) API 추가 및 타입 정의.
API - Feeds
src/api/feeds/*
피드 삭제(deleteFeedPost), 피드 좋아요(postFeedLike) API 추가.
API - Users
src/api/users/*
내 프로필 조회(getMyProfile), 사용자 목록 조회(getUsers) API 추가 및 타입 정의.
Popup/Modal System
src/stores/usePopupStore.ts, src/hooks/usePopupActions.ts, src/components/common/Modal/PopupContainer.tsx, src/components/common/Modal/MoreMenu.tsx, src/components/common/Modal/ReplyModal.tsx
팝업 타입에 reply-modal 추가, 액션 훅에 openReplyModal 추가, 팝업 컨테이너에 ReplyModal 분기 추가. MoreMenu 스타일/쌓임순서 조정. ReplyModal 신규 도입(삭제 흐름 포함).
Post - Comments UI
src/components/common/Post/Reply.tsx, .../SubReply.tsx, .../ReplyList.tsx, .../PostFooter.tsx
API 연동(좋아요/삭제), 삭제 상태 렌더링, 키/프로퍼티 구조를 creator*/replyList로 전환, 리스트 리로드 콜백 도입, 피드 좋아요 서버 반영으로 변경.
Reply State/Hooks
src/stores/useReplyStore.ts, src/hooks/useReplyActions.ts, src/components/today-words/MessageInput.tsx
reply 대상 필드 targetUserNamenickname로 변경. 스토어 메서드 시그니처 및 컴포넌트 props 반영.
Search Hooks/Pages
src/hooks/useDebounce.ts, src/hooks/useUserSearch.ts, src/pages/feed/UserSearch.tsx, src/pages/feed/UserSearchResult.tsx
디바운스 훅 추가. 사용자 검색 훅 추가(페이지네이션/에러/상태). 검색 페이지를 API 기반·무한스크롤로 전환.
Feed Pages
src/pages/feed/Feed.tsx, .../FeedDetailPage.tsx, .../OtherFeedPage.tsx, .../FollowerListPage.tsx
초기 탭 상태를 location.state로 수신/정리. 상세에서 피드/댓글 병렬 로딩 및 삭제/코멘트 갱신 흐름 추가. 작성 버튼 경로를 /post/create로 통일. UserProfileItem prop명 변경 반영.
MyPage
src/pages/mypage/Mypage.tsx, src/pages/mypage/EditPage.tsx
마이페이지 데이터 API 연동 및 편집 페이지에서 프로필 PATCH 연동, 장르 동적 로딩/선택, 에러 메시지 매핑.
Group - Sections/Pages
src/components/group/*Section*.styled.ts, .../*Section*.tsx, .../GroupActionBottomSheet*.ts*, src/pages/groupDetail/ParticipatedGroupDetail*.ts*, src/pages/groupMembers/*, src/pages/index.tsx, src/pages/groupDetail/GroupDetail.styled.ts
그룹 상세 하위 섹션(기록/핫토픽/코멘트/도서) 및 바텀시트 스타일/컴포넌트 추가. 참여 그룹 상세/멤버 목록 페이지 및 라우트 추가. 스타일 소폭 보완.
Members Mock/List
src/mocks/members.mock.ts, src/components/members/*
멤버 목데이터/리스트 컴포넌트 및 스타일 추가. 키보드 접근성 및 내비게이션 처리.
NavBar
src/components/common/NavBar.tsx
외부 FabProps 의존 제거, 로컬 NavBarProps 도입(동일 동작).
Data/Types Align
src/data/postData.ts, src/data/userData.ts, src/types/post.ts, src/types/user.ts, src/types/profile.ts
데이터/타입을 API 스키마에 맞게 정렬: 닉네임 키 nickNamenickname, 댓글 스키마 creator*/replyList/isDeleted, 프로필에서 userId 제거。

Sequence Diagram(s)

sequenceDiagram
  participant UI as Reply/SubReply UI
  participant Popup as PopupActions
  participant API as comments.deleteComment
  participant Store as ReplyList(onReload)

  UI->>Popup: openConfirm("댓글을 삭제할까요?")
  alt Confirmed
    UI->>API: deleteComment(commentId)
    API-->>UI: { isSuccess, data: { postId } }
    alt isSuccess
      UI->>Popup: openSnackbar("삭제됐어요")
      UI->>Store: onDelete()/onReload()
    else Fail
      UI->>Popup: openSnackbar(errorMsg)
    end
    UI->>Popup: closePopup()
  else Canceled
    Note over UI: no action
  end
Loading
sequenceDiagram
  participant Post as PostFooter
  participant API as feeds.postFeedLike
  Post->>API: postFeedLike(feedId, !liked)
  API-->>Post: { isSuccess, data: { isLiked } }
  alt isSuccess
    Post->>Post: setLiked/isLiked, update likeCount
  else Fail
    Post->>Post: log error
  end
Loading
sequenceDiagram
  participant Page as FeedDetailPage
  participant C as comments.getComments
  participant F as feeds.getFeedDetail
  Page->>C: fetch comments (postType/cursor/size)
  Page->>F: fetch feed detail
  par Concurrent
    C-->>Page: CommentData[]
    F-->>Page: Feed detail
  end
  Page->>UI: render detail + comments
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Possibly related PRs

Suggested labels

✨ Feature, 🎨 Html&css

Suggested reviewers

  • ljh130334
  • ho0010

Poem

(•̀ᴗ•́)و ̑̑ 〰️🐇
댓글 톡톡, 좋아요 퐁퐁
바람 타고 팝업이 폴짝!
그룹 길 따라 별이 반짝—
검색은 살살, 디바운스 살포시.
오늘도 코드밭에 당근 하나 심었지 🌱


📜 Recent review details

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

📥 Commits

Reviewing files that changed from the base of the PR and between b441dc8 and 546feff.

⛔ Files ignored due to path filters (3)
  • src/assets/group/right-chevron.svg is excluded by !**/*.svg
  • src/assets/header/header-logo.svg is excluded by !**/*.svg
  • src/assets/member/right-chevron.svg is excluded by !**/*.svg
📒 Files selected for processing (58)
  • index.html (1 hunks)
  • public/genres.json (1 hunks)
  • src/api/comments/deleteComment.ts (1 hunks)
  • src/api/comments/getComments.ts (1 hunks)
  • src/api/comments/postLike.ts (1 hunks)
  • src/api/feeds/deleteFeedPost.ts (1 hunks)
  • src/api/feeds/postFeedLike.ts (1 hunks)
  • src/api/users/getMyProfile.ts (1 hunks)
  • src/api/users/getUsers.ts (1 hunks)
  • src/api/users/patchProfile.ts (1 hunks)
  • src/components/common/Modal/MoreMenu.tsx (2 hunks)
  • src/components/common/Modal/PopupContainer.tsx (2 hunks)
  • src/components/common/Modal/ReplyModal.tsx (1 hunks)
  • src/components/common/NavBar.tsx (1 hunks)
  • src/components/common/Post/PostFooter.tsx (2 hunks)
  • src/components/common/Post/Reply.tsx (1 hunks)
  • src/components/common/Post/ReplyList.tsx (1 hunks)
  • src/components/common/Post/SubReply.tsx (3 hunks)
  • src/components/feed/UserProfileItem.tsx (4 hunks)
  • src/components/group/CommentSection.styled.ts (1 hunks)
  • src/components/group/CommentSection.tsx (1 hunks)
  • src/components/group/GroupActionBottomSheet.styled.ts (1 hunks)
  • src/components/group/GroupActionBottomSheet.tsx (1 hunks)
  • src/components/group/GroupBookSection.styled.ts (1 hunks)
  • src/components/group/GroupBookSection.tsx (1 hunks)
  • src/components/group/HotTopicSection.styled.ts (1 hunks)
  • src/components/group/HotTopicSection.tsx (1 hunks)
  • src/components/group/RecordSection.styled.ts (1 hunks)
  • src/components/group/RecordSection.tsx (1 hunks)
  • src/components/members/MemberList.styled.ts (1 hunks)
  • src/components/members/MemberList.tsx (1 hunks)
  • src/components/today-words/MessageInput.tsx (3 hunks)
  • src/data/postData.ts (1 hunks)
  • src/data/userData.ts (4 hunks)
  • src/hooks/useDebounce.ts (1 hunks)
  • src/hooks/usePopupActions.ts (2 hunks)
  • src/hooks/useReplyActions.ts (2 hunks)
  • src/hooks/useUserSearch.ts (1 hunks)
  • src/mocks/members.mock.ts (1 hunks)
  • src/pages/feed/Feed.tsx (3 hunks)
  • src/pages/feed/FeedDetailPage.tsx (3 hunks)
  • src/pages/feed/FollowerListPage.tsx (1 hunks)
  • src/pages/feed/OtherFeedPage.tsx (1 hunks)
  • src/pages/feed/UserSearch.tsx (2 hunks)
  • src/pages/feed/UserSearchResult.tsx (3 hunks)
  • src/pages/groupDetail/GroupDetail.styled.ts (1 hunks)
  • src/pages/groupDetail/ParticipatedGroupDetail.styled.ts (1 hunks)
  • src/pages/groupDetail/ParticipatedGroupDetail.tsx (1 hunks)
  • src/pages/groupMembers/GroupMembers.styled.ts (1 hunks)
  • src/pages/groupMembers/GroupMembers.tsx (1 hunks)
  • src/pages/index.tsx (2 hunks)
  • src/pages/mypage/EditPage.tsx (2 hunks)
  • src/pages/mypage/Mypage.tsx (2 hunks)
  • src/stores/usePopupStore.ts (2 hunks)
  • src/stores/useReplyStore.ts (1 hunks)
  • src/types/post.ts (1 hunks)
  • src/types/profile.ts (0 hunks)
  • src/types/user.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.
    • Explain this complex logic.
    • 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. Examples:
    • @coderabbitai explain this code block.
  • 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 src/utils.ts and explain its main purpose.
    • @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 comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai generate unit tests to generate unit tests for this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

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

Documentation and Community

  • 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 changed the title develp branch 작업내용 머지 develp branch 작업내용 머지 : develop -> main Aug 11, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants