diff --git a/apps/web/e2e/mocks/tournament.ts b/apps/web/e2e/mocks/tournament.ts index 9285ef7b..efb952d1 100644 --- a/apps/web/e2e/mocks/tournament.ts +++ b/apps/web/e2e/mocks/tournament.ts @@ -19,8 +19,8 @@ export const MOCK_TOURNAMENT_LIST: GetTournamentListResponseT = [ name: 'E2E 토너먼트', status: 'PENDING', createdAt: '2026-01-01T00:00:00Z', - /** 가짜 URL — fixture 가 가로채 로컬 이미지로 응답한다 (e2e/mocks/images.ts) */ - participantProfileImages: [MOCK_IMAGE_URLS.avatar], + participantCount: 1, + playedCount: 0, thumbnailUrls: [], }, ]; diff --git a/apps/web/src/app/archive/tournament/_components/TournamentHistoryList.tsx b/apps/web/src/app/archive/tournament/_components/TournamentHistoryList.tsx index 80454429..d9b7073d 100644 --- a/apps/web/src/app/archive/tournament/_components/TournamentHistoryList.tsx +++ b/apps/web/src/app/archive/tournament/_components/TournamentHistoryList.tsx @@ -36,8 +36,8 @@ function TournamentHistoryList({ statuses, playType, statusTab }: Props) { tournamentId={tournament.tournamentId} status={tournament.status} name={tournament.name} - profileImageUrls={tournament.participantProfileImages} - participantCount={tournament.participantProfileImages.length} + participantCount={tournament.participantCount} + playedCount={tournament.playedCount} scrollRestoration={{ namespace: SCROLL_NAMESPACE.ARCHIVE_TOURNAMENT, scope: statusTab }} /> ))} diff --git a/apps/web/src/app/home/_components/tournament-list/client.tsx b/apps/web/src/app/home/_components/tournament-list/client.tsx index 6bd50a2d..29b211a0 100644 --- a/apps/web/src/app/home/_components/tournament-list/client.tsx +++ b/apps/web/src/app/home/_components/tournament-list/client.tsx @@ -32,8 +32,8 @@ function TournamentListClient({ isGuest = false }: TournamentListClientProps) { tournamentId={tournament.tournamentId} status={tournament.status} name={tournament.name} - profileImageUrls={tournament.participantProfileImages} - participantCount={tournament.participantProfileImages.length} + participantCount={tournament.participantCount} + playedCount={tournament.playedCount} showMorePopover={false} /> ))} diff --git a/apps/web/src/components/tournament-card/index.tsx b/apps/web/src/components/tournament-card/index.tsx index 983440de..0f7121aa 100644 --- a/apps/web/src/components/tournament-card/index.tsx +++ b/apps/web/src/components/tournament-card/index.tsx @@ -1,8 +1,8 @@ import Link from 'next/link'; import type { MouseEvent } from 'react'; +import { PersonIconFill } from '@/assets/icons'; import StatusChip from '@/components/status-chip'; -import UserProfileGroup from '@/components/user-profile-group'; import { ROUTES } from '@/consts/route'; import type { TournamentStatusT } from '@/types/tournament'; import { cn } from '@/utils/cn'; @@ -16,12 +16,12 @@ type TournamentCardProps = { tournamentId: number; status: TournamentStatusT; name: string; - profileImageUrls: string[]; /** 토너먼트 아이템 썸네일. 최대 2개. */ imageUrls: string[]; - maxProfiles?: number; - /** 본인 포함 참여자 수. 2명 이상이면 더보기에 '친구 목록 보기' 메뉴 노출. */ - participantCount?: number; + /** 본인 포함 함께 담은 참여자 수. 2명 이상이면 더보기에 '친구 목록 보기' 메뉴 노출. */ + participantCount: number; + /** 실제로 플레이한 인원 수 */ + playedCount: number; className?: string; showMorePopover?: boolean; scrollRestoration?: ScrollRestorationTargetT; @@ -31,10 +31,9 @@ function TournamentCard({ tournamentId, status, name, - profileImageUrls, imageUrls = [], - maxProfiles = 3, participantCount, + playedCount, className, showMorePopover = true, scrollRestoration, @@ -76,7 +75,7 @@ function TournamentCard({ -
+
@@ -94,7 +93,16 @@ function TournamentCard({ )}
- +
+ + + 함께 담은 {participantCount} + +
+ + 플레이한 {playedCount} + +
); diff --git a/apps/web/src/types/tournament.ts b/apps/web/src/types/tournament.ts index 8f9043a4..019f7082 100644 --- a/apps/web/src/types/tournament.ts +++ b/apps/web/src/types/tournament.ts @@ -39,7 +39,8 @@ export type GetTournamentListResponseT = { name: string; status: TournamentStatusT; createdAt: string; - participantProfileImages: string[]; + participantCount: number; + playedCount: number; thumbnailUrls: string[]; }[];