Skip to content

fix: 경기 목록 순서 조정#472

Open
seongminn wants to merge 1 commit intowip-v2from
live-game-order
Open

fix: 경기 목록 순서 조정#472
seongminn wants to merge 1 commit intowip-v2from
live-game-order

Conversation

@seongminn
Copy link
Copy Markdown
Member

✅ 작업 내용

  • Live 경기가 있을 때는 제일 위로
  • 아니면 예정 경기 -> 종료 경기 순
  • 동일한 상태끼리는 경기 시작 시간 순

📝 참고 자료

  • 작업한 내용에 대한 부연 설명

♾️ 기타

  • 추가로 필요한 작업 내용

@vercel
Copy link
Copy Markdown

vercel bot commented Apr 1, 2026

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

Project Deployment Actions Updated (UTC)
spectator Ready Ready Preview, Comment Apr 1, 2026 2:38pm
1 Skipped Deployment
Project Deployment Actions Updated (UTC)
manager Skipped Skipped Apr 1, 2026 2:38pm

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request updates the sorting logic for games in the RecentTab component to prioritize them by state (Playing, Scheduled, then Finished) and then by start time. Feedback was provided to optimize performance by moving the state order object outside the sort callback, and to improve the user experience by updating the button label logic and reversing the sort order for finished games to show the most recent ones first.

Comment on lines +27 to +36
// gameState가 PLAYING인 경기, SCHEDULED인 경기, FINISHED인 경기 순으로 정렬
// 각 경기 상태 내에서는 시작 시간이 빠른 순으로 정렬
const sortedGames = [...displayedGame.games].sort((a, b) => {
const gameStateOrder = { PLAYING: 0, SCHEDULED: 1, FINISHED: 2 };
const aOrder = gameStateOrder[a.gameState];
const bOrder = gameStateOrder[b.gameState];

if (aOrder !== bOrder) return aOrder - bOrder;
return new Date(a.startTime).getTime() - new Date(b.startTime).getTime();
});
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

정렬 로직의 효율성과 변경된 순서에 따른 UX 영향을 검토해 주세요.

  1. 성능 최적화: gameStateOrder 객체가 정렬 콜백 함수 내부에서 매번 생성되고 있습니다. 이를 콜백 외부로 이동시켜 불필요한 객체 생성을 방지하는 것이 좋습니다.
  2. UX 일관성:
    • 버튼 문구: PLAYING 경기가 없고 SCHEDULED 경기가 있는 경우, 목록 최상단에는 예정 경기가 오지만 하단 버튼(25번 라인)은 여전히 "지난 경기 보러가기"로 표시됩니다. 예정 경기가 우선순위가 된 만큼 버튼 문구 로직도 수정이 필요해 보입니다.
    • 종료 경기 순서: FINISHED 상태의 경기를 시작 시간 오름차순으로 정렬하면 가장 오래된 경기가 먼저 노출됩니다. 일반적으로 '최근 경기' 탭에서는 종료된 경기를 최신순(내림차순)으로 보여주는 것이 사용자 기대에 부합할 수 있습니다.
Suggested change
// gameState가 PLAYING인 경기, SCHEDULED인 경기, FINISHED인 경기 순으로 정렬
// 각 경기 상태 내에서는 시작 시간이 빠른 순으로 정렬
const sortedGames = [...displayedGame.games].sort((a, b) => {
const gameStateOrder = { PLAYING: 0, SCHEDULED: 1, FINISHED: 2 };
const aOrder = gameStateOrder[a.gameState];
const bOrder = gameStateOrder[b.gameState];
if (aOrder !== bOrder) return aOrder - bOrder;
return new Date(a.startTime).getTime() - new Date(b.startTime).getTime();
});
// gameState가 PLAYING인 경기, SCHEDULED인 경기, FINISHED인 경기 순으로 정렬
// 각 경기 상태 내에서는 시작 시간이 빠른 순으로 정렬
const gameStateOrder = { PLAYING: 0, SCHEDULED: 1, FINISHED: 2 };
const sortedGames = [...displayedGame.games].sort((a, b) => {
const aOrder = gameStateOrder[a.gameState];
const bOrder = gameStateOrder[b.gameState];
if (aOrder !== bOrder) return aOrder - bOrder;
return new Date(a.startTime).getTime() - new Date(b.startTime).getTime();
});

@sungwonnoh
Copy link
Copy Markdown
Contributor

sungwonnoh commented Apr 2, 2026

image

정책 상 날짜순으로 들었는데 예정인 경기들이 정렬이 안되는 것 같아요.(아 이건 제가 제대로 모를 거 일 수도 있습니당..) 그리고 예정인 경기들은 "응원하러가기"로 표시되어야 할 것 같습니다!

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