Skip to content

refactor: 위시 및 토너먼트 등록 플로우 개선#135

Merged
ychany merged 21 commits into
devfrom
refactor/wish-flow
Jun 2, 2026
Merged

refactor: 위시 및 토너먼트 등록 플로우 개선#135
ychany merged 21 commits into
devfrom
refactor/wish-flow

Conversation

@iOdiO89

@iOdiO89 iOdiO89 commented Jun 2, 2026

Copy link
Copy Markdown
Contributor

작업 요약

  • 위시 및 토너먼트 등록 플로우 개선

작업 세부 내용

1) 위시리스트 플로우 개선

  • 링크 기반 위시 등록 API 및 훅(postWishLink, usePostWishLink) 추가
  • 위시 등록 성공 토스트 노출, 중복 토스트/미사용 토스트 코드 정리
  • 위시 수정 API 요청 타입을 FormData로 보정
  • 위시 다중 삭제 API 연동 및 삭제 훅 정리
  • processing 상태 위시가 있을 때 위시리스트 5초 폴링으로 자동 갱신
  • 위시/토너먼트 관련 타입 정리 (imageUrl 타입 일관성 보강 등)

2) 토너먼트 준비/생성 UX 및 구조 개선

  • 토너먼트 준비 페이지 장바구니 레이아웃/반응형/캐러셀 동작 개선
  • 아이템 추가 시 해당 캐러셀 포커스 이동 및 인디케이터 표시 개선
  • 실패 아이템 다이얼로그(드로어) 연동
  • 준비 페이지 진입 직후 필요한 액션을 수행하는 훅 추가
  • 페이지 전용 컴포넌트/에셋 위치 재정리(콜로케이션 구조 정리)

3) 토너먼트 조회/상세/관리 기능 확장

  • 토너먼트 삭제 API 및 공통 훅(useDeleteTournament) 연동
  • 홈에서 토너먼트 기록 전체 조회 로직 개선
  • 보관함 탭에서 토너먼트 기록 조회 기능 추가
  • 토너먼트 카드 Popover UI 및 삭제 다이얼로그 추가
  • 토너먼트 아이템 상세에서 sourceUrl 존재 시 링크 배너 노출

4) 공통 컴포넌트/기반 코드 리팩토링

  • 공통 carousel, popover, query action 유틸/훅 추가
  • status-chip 컴포넌트 정리 및 스타일 이슈 수정
  • 일부 API/훅/타입을 페이지 전용 경로에서 공통 경로로 이동
  • 불필요한 콘솔 로그 및 사용하지 않는 코드 정리

Summary by CodeRabbit

Release Notes

  • New Features

    • Added tournament deletion functionality with confirmation dialog
    • Added "More options" menu on tournament cards with context-aware actions
    • Enhanced tournament creation with carousel navigation for item management
    • Tournament history section now displays complete tournament list
  • Bug Fixes

    • Fixed source URL display conditions for tournament items
  • Chores

    • Updated shadcn dependency to latest version
    • Refactored component structure and import paths for better organization
    • Simplified tournament list filtering logic

@iOdiO89 iOdiO89 self-assigned this Jun 2, 2026
@vercel

vercel Bot commented Jun 2, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
depromeet Ready Ready Preview, Comment Jun 2, 2026 12:28pm

@github-actions

github-actions Bot commented Jun 2, 2026

Copy link
Copy Markdown

No description provided.

@github-actions
github-actions Bot requested a review from kanghaeun June 2, 2026 12:19
@github-actions github-actions Bot added the refactor Extra attention is needed label Jun 2, 2026
@github-actions
github-actions Bot requested a review from ychany June 2, 2026 12:19
@coderabbitai

coderabbitai Bot commented Jun 2, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@iOdiO89, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 49 minutes and 21 seconds. Learn how PR review limits work.

Your organization has run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 0b526270-f29f-419c-b24d-e5df8149ee82

📥 Commits

Reviewing files that changed from the base of the PR and between a4bd6bc and 9926d0d.

📒 Files selected for processing (1)
  • apps/web/src/app/tournament/[id]/item/[itemId]/_components/EditContent.tsx

Walkthrough

이 PR은 토너먼트 카드 UI를 개선하고 삭제 기능을 추가하며, 토너먼트 타입을 공유 영역으로 통합하고, Popover 컴포넌트 라이브러리를 구현하여 토너먼트 생성/조회/삭제 플로우 전체를 재구성합니다.

Changes

Tournament Management Refactoring

Layer / File(s) Summary
Tournament types consolidation
apps/web/src/types/tournament.ts, apps/web/src/app/home/_types/tournament.ts, apps/web/src/utils/tournament.ts, apps/web/src/apis/getTournamentList.ts
TournamentTGetTournamentListResponseT를 공유 @/types/tournament로 이동하고, 홈의 토너먼트 생성 타입(PostCreateTournamentRequestT, PostCreateTournamentResponseT)을 분리합니다.
Tournament deletion API and hooks
apps/web/src/apis/deleteTournament.ts, apps/web/src/hooks/useDeleteTournament.ts, apps/web/src/hooks/useQueryAction.ts, apps/web/src/consts/queryAction.ts
삭제 API와 useMutation 훅을 추가하고, URL 쿼리 파라미터(?action=get-item)로 다이얼로그를 트리거하는 useQueryAction 훅을 구현합니다.
StatusChip component
apps/web/src/components/common/status-chip/index.tsx, apps/web/src/components/common/status-chip/statusChip.style.ts, apps/web/src/components/common/state-chip/index.tsx
StateChip을 제거하고 StatusChip 컴포넌트와 statusChipStyles를 새로 구현하여 토너먼트 상태를 통일된 방식으로 표시합니다.
Popover component library
apps/web/src/components/common/popover/index.tsx, apps/web/src/consts/zIndex.ts
Radix UI Popover를 래핑하는 재사용 가능한 Popover 컴포넌트 셋과 Z-index 상수를 구현합니다.
Tournament card with actions
apps/web/src/components/common/tournament-card/index.tsx, apps/web/src/components/common/tournament-card/MorePopover.tsx, apps/web/src/components/common/tournament-card/TournamentDeleteDialog.tsx
TournamentCard props를 statustournamentId 기반으로 리팩터링하고, MorePopover에서 상태별 옵션(추가/친구보기/공유/삭제)을 렌더링하며 삭제 다이얼로그를 통합합니다.
Tournament list and prefetch
apps/web/src/hooks/useGetTournamentList.ts, apps/web/src/app/home/page.tsx, apps/web/src/app/home/_components/TournamentList.tsx, apps/web/src/app/wishlist/page.tsx
useGetTournamentList 호출을 무필터 기반으로 변경하고, 홈 페이지와 위시리스트 페이지의 프리페칭 로직을 일관되게 통합합니다.
Tournament creation with dialog
apps/web/src/app/tournament/[id]/create/_components/TournamentCreateClient.tsx, apps/web/src/app/tournament/[id]/create/_components/tournament-item-basket/TournamentItemBasket.tsx
TournamentCreateClientuseQueryAction 기반 다이얼로그 트리거를 추가하고, TournamentItemBasket에서 AddWishDialog를 공용 Dialog로 교체합니다.
Tournament item basket carousel
apps/web/src/app/tournament/[id]/create/_components/tournamentItemBasket/TournamentItemBasketCarousel.tsx
아이템을 바구니 단위로 분할하고 캐러셀로 렌더링하며, 높이 측정과 자동 스크롤 로직을 구현합니다.
Tournament history integration
apps/web/src/app/wishlist/_components/TournamentHistoryContent.tsx
useGetTournamentList()로 토너먼트 데이터를 조회하고 카드 목록으로 렌더링하도록 컴포넌트를 클라이언트화합니다.
Item source URL support
apps/web/src/app/tournament/[id]/item/[itemId]/_types/tournamentItem.ts, apps/web/src/app/tournament/[id]/item/[itemId]/_components/EditContent.tsx
GetTournamentItemResponseTsourceUrl 필드를 추가하고, READY 상태일 때만 ItemLinkBanner를 조건부로 렌더링합니다.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related PRs

  • depromeet/PIKI-Client#133: TournamentCreateClient/TournamentItemBasket/TournamentItemBasketCarousel의 다이얼로그 및 스크롤 로직 변경이 본 PR의 같은 영역 리팩터링과 직접 연결됨
  • depromeet/PIKI-Client#102: AddWishDialog 제거 및 공용 Dialog로 교체하는 변경이 위시 다이얼로그 구조 리팩터링과 같은 경로를 다룸
  • depromeet/PIKI-Client#124: 토너먼트 아이템 EditContentGetTournamentItemResponseT 타입 확장이 sourceUrl 필드 추가와 동일 코드 영역

Suggested labels

refactor, feature

Suggested reviewers

  • kanghaeun
  • ychany
  • soyeong0115

Poem

🐰 토너먼트를 정리하는 토끼네,
상태칩은 새로 입고, 팝오버로 꾸몄네.
삭제도 척척, 쿼리로 트리거하고,
바구니 캐러셀에 아이템을 쏙쏙,
공유 컴포넌트로 깔끔하게 마무리! ✨

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed PR 제목은 '위시 및 토너먼트 등록 플로우 개선'으로, 변경사항의 주요 초점인 위시리스트 플로우 개선과 토너먼트 준비/생성 UX 개선을 잘 요약하고 있습니다.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch refactor/wish-flow

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

refactor Extra attention is needed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants