Skip to content

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

Merged
ho0010 merged 6 commits intomainfrom
develop
Oct 18, 2025
Merged

develp branch 작업내용 머지 : develop -> main#281
ho0010 merged 6 commits intomainfrom
develop

Conversation

@ho0010
Copy link
Collaborator

@ho0010 ho0010 commented Oct 18, 2025

Summary by CodeRabbit

  • 기능 변경

    • 캐러셀에서 터치 상호작용 지원 제거 (마우스 드래그만 지원)
    • 캐러셀 애니메이션 성능 개선
    • 그룹 검색 카테고리 필터링 로직 업데이트
  • 스타일

    • 카드 컴포넌트 시각적 최적화

heeeeyong and others added 6 commits October 13, 2025 18:13
feat: 알림센터 알림 유무 확인 기능 구현
- 커스텀 핸들러가 isDragging 플래그를 공유하면서 스크롤 위치를 강제로 덮어써 모바일 스크롤 가속과 충돌하던 부분을 해결했습니다.
- RecruitingGroupCarousel 방식과 동일하게 로직 수정
[FIX] 10월 3주차 QA 사항 - 호준
@ho0010 ho0010 merged commit 674aed9 into main Oct 18, 2025
1 check passed
@vercel
Copy link

vercel bot commented Oct 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 Oct 18, 2025 8:22am

💡 Enable Vercel Agent with $100 free credit for automated AI reviews

@coderabbitai
Copy link

coderabbitai bot commented Oct 18, 2025

Caution

Review failed

The pull request is closed.

Walkthrough

터치 상호작용 지원을 캐러셀 컴포넌트에서 제거했으며, CSS 성능 최적화(translateZ, will-change)를 추가하고, 무한 캐러셀 초기화에 requestAnimationFrame 기반 로직과 리사이즈 디바운싱을 도입했습니다. 그룹 검색의 loadMore 함수는 카테고리 인식 로직과 트림된 검색어를 사용하도록 수정되었습니다.

Changes

Cohort / File(s) Summary
터치 드래그 상호작용 제거
src/components/group/MyGroupBox.tsx, src/components/group/RecruitingGroupCarousel.tsx
touchStartX, touchScrollLeft 상태 변수 및 handleTouchStart, handleTouchMove, handleTouchEnd 핸들러 제거. 캐러셀 컴포넌트에서 onTouchStart, onTouchMove, onTouchEnd 바인딩 제거. 마우스 드래그만 남음
CSS 성능 최적화
src/components/group/MyGroupCard.tsx, src/components/group/RecruitingGroupCarousel.tsx
Card 및 Item 컴포넌트에 transform: translateZ(0) 추가. RecruitingGroupCarousel에서 transition 지속시간 0.2s → 0.3s로 증가, will-change: transform 추가
캐러셀 초기화 및 리사이즈 처리
src/hooks/useInfiniteCarousel.ts
requestAnimationFrame 기반 중앙 카드 초기화 로직 도입. 150ms 디바운싱을 적용한 리사이즈 핸들러 추가. 언마운트 시 RAF 및 타이머 정리
검색 로직 및 API 파라미터 개선
src/pages/groupSearch/GroupSearch.tsx
loadMore 함수에 searchTerm 트리밍 및 isAllCategory 플래그 추가. 카테고리 및 isAllCategory를 getSearchRooms API에 전달. 조건 가드 로직 수정

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant Component as Carousel<br/>Component
    participant Hook as useInfiniteCarousel
    participant RAF as requestAnimationFrame
    participant ResizeObs as ResizeObserver

    User->>Component: Mount component
    activate Hook
    Hook->>RAF: Schedule initialize (RAF)
    activate RAF
    RAF-->>Hook: Trigger initialization
    Hook->>Hook: Center middle card
    deactivate RAF

    ResizeObs->>Hook: Window resize detected
    activate Hook
    Note over Hook: Debounce 150ms
    Hook->>Hook: Cancel pending debounce
    Hook->>Hook: Schedule new initialize
    Hook->>Hook: Center middle card on resize
    deactivate Hook

    User->>Component: Unmount component
    activate Hook
    Hook->>Hook: Clear RAF
    Hook->>Hook: Clear debounce timer
    deactivate Hook
    deactivate Hook
Loading
sequenceDiagram
    participant User as User
    participant Search as GroupSearch<br/>Component
    participant API as getSearchRooms<br/>API
    participant State as Results State

    User->>Search: Trigger loadMore
    activate Search
    
    Note over Search: Extract trimmedTerm
    Note over Search: Calculate isAllCategory<br/>(empty term + empty category)
    
    alt isAllCategory OR !trimmedTerm
        Search->>Search: Skip fetch (guard blocked)
    else Valid search criteria
        Search->>API: Call with trimmedTerm,<br/>category, isAllCategory
        activate API
        API-->>State: Return paginated results
        deactivate API
        State->>Search: Update results
    end
    
    deactivate Search
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~22 minutes

변경 사항은 여러 파일에 걸쳐 있지만 터치 핸들러 제거 같은 반복적인 패턴과 새로운 RAF/디바운싱 로직, 검색 파라미터 수정이 혼합되어 있습니다. 각 영역별로 서로 다른 이유로 변경되어 있어 별도의 검토가 필요합니다.

Possibly related PRs

  • [FIX] 캐러셀 모바일 뷰 이슈 #280: 동일한 캐러셀 및 검색 컴포넌트에서 터치 드래그 제거, useInfiniteCarousel RAF/디바운싱, GroupSearch 로직 변경을 수행하는 것으로 보아 직접적으로 관련됨
  • feat: getSearchRoom API 연동 #142: GroupSearch.loadMore에서 getSearchRooms API로 전달하는 파라미터 변경(category, isAllCategory)이 API 정의 PR과 직접 연관
  • fix: carousel 로직 복구 #128: useInfiniteCarousel, RecruitingGroupCarousel, MyGroupBox 캐러셀 제어 로직 수정으로 인해 관련

Suggested labels

🌏 Deploy

Poem

🐰 토치는 사라지고, 애니메이션 부드럽게,
RAF의 마법으로 카드 정렬,
검색은 영리해져 카테고리 알아차리고,
성능 최적화는 우리의 친구,
한 발 더 나아가는 변화여, 환영하노라! 🎉

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch develop

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Jira 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 4511ebe and 307e77e.

📒 Files selected for processing (5)
  • src/components/group/MyGroupBox.tsx (0 hunks)
  • src/components/group/MyGroupCard.tsx (1 hunks)
  • src/components/group/RecruitingGroupCarousel.tsx (1 hunks)
  • src/hooks/useInfiniteCarousel.ts (1 hunks)
  • src/pages/groupSearch/GroupSearch.tsx (1 hunks)

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

Comment @coderabbitai help to get the list of available commands and usage tips.

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