From 01d8787eafba8158cc1ac483f9b1a6a4fbfadc13 Mon Sep 17 00:00:00 2001
From: Jung Sun A
Date: Mon, 26 Oct 2026 17:55:35 +0900
Subject: [PATCH 1/4] =?UTF-8?q?refactor:=20=EC=9C=84=EC=8B=9C=203=EC=97=B4?=
=?UTF-8?q?=20=EA=B7=B8=EB=A6=AC=EB=93=9C=C2=B7=EC=B9=B4=EB=93=9C=20compon?=
=?UTF-8?q?ents/common=20=EC=9D=B4=EA=B4=80?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- WishGrid·WishCard 를 app/wish/_common 에서 components/common/wish-grid 로 이동
- 원인: 토너먼트 위시 가져오기 화면과 공유 (#727 결정 사항 2번)
- WishListItemT 를 src/types/wish.ts 로 이동
- 원인: 공용 컴포넌트가 app 라우트 타입 참조 금지
- 위시 화면 import 경로만 갱신
---
apps/web/src/app/wish/_common/_consts/wishMock.ts | 3 ++-
apps/web/src/app/wish/_common/_types/wish.ts | 11 -----------
.../src/app/wish/_components/AllWishTabContent.tsx | 3 ++-
apps/web/src/app/wish/_components/WishSearch.tsx | 5 ++---
apps/web/src/app/wish/_types/wishTab.ts | 4 +++-
.../[folderId]/_components/FolderDetailContent.tsx | 2 +-
.../add/_components/FolderWishSelectContent.tsx | 2 +-
.../common/wish-grid}/WishCard.tsx | 0
.../common/wish-grid/index.tsx} | 2 +-
apps/web/src/types/wish.ts | 8 ++++++++
10 files changed, 20 insertions(+), 20 deletions(-)
rename apps/web/src/{app/wish/_common/_components => components/common/wish-grid}/WishCard.tsx (100%)
rename apps/web/src/{app/wish/_common/_components/WishGrid.tsx => components/common/wish-grid/index.tsx} (97%)
diff --git a/apps/web/src/app/wish/_common/_consts/wishMock.ts b/apps/web/src/app/wish/_common/_consts/wishMock.ts
index 6e25393b..a403e5bd 100644
--- a/apps/web/src/app/wish/_common/_consts/wishMock.ts
+++ b/apps/web/src/app/wish/_common/_consts/wishMock.ts
@@ -1,6 +1,7 @@
import { ITEM_STATUS } from '@/consts/item';
+import type { WishListItemT } from '@/types/wish';
-import type { WishFolderT, WishListItemT } from '../_types/wish';
+import type { WishFolderT } from '../_types/wish';
// TEMP: API 연동 시 public/mock/wish 이미지와 함께 제거
const MOCK_IMAGE_URLS = [1, 2, 3, 4, 5, 6].map(index => `/mock/wish/wish-${index}.jpg`);
diff --git a/apps/web/src/app/wish/_common/_types/wish.ts b/apps/web/src/app/wish/_common/_types/wish.ts
index 7c36300a..05a53b16 100644
--- a/apps/web/src/app/wish/_common/_types/wish.ts
+++ b/apps/web/src/app/wish/_common/_types/wish.ts
@@ -1,14 +1,3 @@
-import type { ItemT } from '@/types/item';
-import type { GetWishlistResponseT } from '@/types/wish';
-
-// TODO: API 연동 시 GetWishlistResponseT 로 교체 — discountRate 는 아직 API 에 없음
-export type WishListItemT = Omit & {
- item: ItemT & {
- /** 할인율(%) — 할인이 없으면 null */
- discountRate: number | null;
- };
-};
-
// TEMP: API 연동 시 응답 타입으로 교체
export type WishFolderT = {
id: number;
diff --git a/apps/web/src/app/wish/_components/AllWishTabContent.tsx b/apps/web/src/app/wish/_components/AllWishTabContent.tsx
index 8a494890..29ca62b3 100644
--- a/apps/web/src/app/wish/_components/AllWishTabContent.tsx
+++ b/apps/web/src/app/wish/_components/AllWishTabContent.tsx
@@ -1,4 +1,5 @@
-import WishGrid from '../_common/_components/WishGrid';
+import WishGrid from '@/components/common/wish-grid';
+
import type { AllWishTabContentProps } from '../_types/wishTab';
import WishAddCard from './WishAddCard';
diff --git a/apps/web/src/app/wish/_components/WishSearch.tsx b/apps/web/src/app/wish/_components/WishSearch.tsx
index 67e8bbfa..be4068ec 100644
--- a/apps/web/src/app/wish/_components/WishSearch.tsx
+++ b/apps/web/src/app/wish/_components/WishSearch.tsx
@@ -4,14 +4,13 @@ import { type FormEvent, useRef, useState } from 'react';
import { ChevronBackwardIconFill, CloseCircularIconFill } from '@/assets/icons';
import BasketGuestIcon from '@/assets/images/basket-guest.svg';
+import WishGrid from '@/components/common/wish-grid';
import { Dialog, DialogContent, DialogDescription, DialogTitle } from '@/components/dialog';
import { Header } from '@/components/header';
import Input from '@/components/input';
+import type { WishListItemT } from '@/types/wish';
import { cn } from '@/utils/cn';
-import WishGrid from '../_common/_components/WishGrid';
-import type { WishListItemT } from '../_common/_types/wish';
-
type WishSearchProps = {
wishes: WishListItemT[];
onClose: () => void;
diff --git a/apps/web/src/app/wish/_types/wishTab.ts b/apps/web/src/app/wish/_types/wishTab.ts
index fb7775ab..847331cb 100644
--- a/apps/web/src/app/wish/_types/wishTab.ts
+++ b/apps/web/src/app/wish/_types/wishTab.ts
@@ -1,4 +1,6 @@
-import type { WishFolderT, WishListItemT } from '../_common/_types/wish';
+import type { WishListItemT } from '@/types/wish';
+
+import type { WishFolderT } from '../_common/_types/wish';
import type { WISH_TAB } from '../_consts/wishTab';
export type WishTabT = (typeof WISH_TAB)[keyof typeof WISH_TAB];
diff --git a/apps/web/src/app/wish/folder/[folderId]/_components/FolderDetailContent.tsx b/apps/web/src/app/wish/folder/[folderId]/_components/FolderDetailContent.tsx
index 6eaae9fc..4ec6d508 100644
--- a/apps/web/src/app/wish/folder/[folderId]/_components/FolderDetailContent.tsx
+++ b/apps/web/src/app/wish/folder/[folderId]/_components/FolderDetailContent.tsx
@@ -5,6 +5,7 @@ import { useEffect, useState } from 'react';
import { toast } from 'sonner';
import { ChevronBackwardIconFill } from '@/assets/icons';
+import WishGrid from '@/components/common/wish-grid';
import { Header } from '@/components/header';
import Spacing from '@/components/spacing';
import { ROUTES } from '@/consts/route';
@@ -13,7 +14,6 @@ import { useBackWithFallback } from '@/hooks/useBackWithFallback';
import WishEditActionBar from '../../../_common/_components/WishEditActionBar';
import WishEditHeader from '../../../_common/_components/WishEditHeader';
-import WishGrid from '../../../_common/_components/WishGrid';
import { MOCK_FOLDERS, MOCK_WISHES } from '../../../_common/_consts/wishMock';
import { WISH_MODE } from '../../../_common/_consts/wishMode';
import { useWishEditMode } from '../../../_common/_hooks/useWishEditMode';
diff --git a/apps/web/src/app/wish/folder/[folderId]/add/_components/FolderWishSelectContent.tsx b/apps/web/src/app/wish/folder/[folderId]/add/_components/FolderWishSelectContent.tsx
index 1b4e11ad..095e8365 100644
--- a/apps/web/src/app/wish/folder/[folderId]/add/_components/FolderWishSelectContent.tsx
+++ b/apps/web/src/app/wish/folder/[folderId]/add/_components/FolderWishSelectContent.tsx
@@ -7,12 +7,12 @@ import { toast } from 'sonner';
import { CloseIconFill } from '@/assets/icons';
import BottomCta from '@/components/bottom-cta';
import Button from '@/components/button';
+import WishGrid from '@/components/common/wish-grid';
import { Header } from '@/components/header';
import { ROUTES } from '@/consts/route';
import { Z_INDEX } from '@/consts/zIndex';
import { useBackWithFallback } from '@/hooks/useBackWithFallback';
-import WishGrid from '../../../../_common/_components/WishGrid';
import { MOCK_FOLDERS, MOCK_WISHES } from '../../../../_common/_consts/wishMock';
import { useWishEditMode } from '../../../../_common/_hooks/useWishEditMode';
diff --git a/apps/web/src/app/wish/_common/_components/WishCard.tsx b/apps/web/src/components/common/wish-grid/WishCard.tsx
similarity index 100%
rename from apps/web/src/app/wish/_common/_components/WishCard.tsx
rename to apps/web/src/components/common/wish-grid/WishCard.tsx
diff --git a/apps/web/src/app/wish/_common/_components/WishGrid.tsx b/apps/web/src/components/common/wish-grid/index.tsx
similarity index 97%
rename from apps/web/src/app/wish/_common/_components/WishGrid.tsx
rename to apps/web/src/components/common/wish-grid/index.tsx
index e4dd74c2..69c46a80 100644
--- a/apps/web/src/app/wish/_common/_components/WishGrid.tsx
+++ b/apps/web/src/components/common/wish-grid/index.tsx
@@ -2,8 +2,8 @@ import type { ReactNode } from 'react';
import { CheckboxEmptyIconFill, CheckboxSelectedIconFill } from '@/assets/icons';
import { Z_INDEX } from '@/consts/zIndex';
+import type { WishListItemT } from '@/types/wish';
-import type { WishListItemT } from '../_types/wish';
import WishCard from './WishCard';
type WishGridProps = {
diff --git a/apps/web/src/types/wish.ts b/apps/web/src/types/wish.ts
index 96b1389e..079ea20d 100644
--- a/apps/web/src/types/wish.ts
+++ b/apps/web/src/types/wish.ts
@@ -27,6 +27,14 @@ export type GetWishlistResponseT = {
winnerTournamentIds: number[];
};
+// TODO: API 연동 시 GetWishlistResponseT 로 교체 — discountRate 는 아직 API 에 없음
+export type WishListItemT = Omit & {
+ item: ItemT & {
+ /** 할인율(%) — 할인이 없으면 null */
+ discountRate: number | null;
+ };
+};
+
export type PostWishLinkResponseT = {
wish: WishT;
item: ItemT;
From c65ef594d6300f32f13490875bfc526a33a3cac5 Mon Sep 17 00:00:00 2001
From: Jung Sun A
Date: Mon, 26 Oct 2026 17:55:35 +0900
Subject: [PATCH 2/4] =?UTF-8?q?feat:=20=ED=86=A0=EB=84=88=EB=A8=BC?=
=?UTF-8?q?=ED=8A=B8=20=EC=9C=84=EC=8B=9C=20=EA=B0=80=EC=A0=B8=EC=98=A4?=
=?UTF-8?q?=EA=B8=B0=20=EC=9E=84=EC=8B=9C=20=EA=B2=BD=EB=A1=9C=20=EC=B6=94?=
=?UTF-8?q?=EA=B0=80?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- /tournament/[id]/create/by-wish-v2 경로 상수 추가
- AUTHORIZED 라우트 패턴에 by-wish-v2 추가
- 원인: 미등록 경로는 권한 타입 null
- 폴더 칩 작업 완료 후 by-wish 로 통합 예정
- 원인: production 의 by-wish 화면에 목 데이터 노출 방지
---
apps/web/src/consts/route.ts | 3 +++
apps/web/src/utils/getRouteType.test.ts | 1 +
apps/web/src/utils/getRouteType.ts | 3 ++-
3 files changed, 6 insertions(+), 1 deletion(-)
diff --git a/apps/web/src/consts/route.ts b/apps/web/src/consts/route.ts
index 231aff35..3b751f97 100644
--- a/apps/web/src/consts/route.ts
+++ b/apps/web/src/consts/route.ts
@@ -38,6 +38,9 @@ export const ROUTES = {
: `/tournament/${tournamentId}/create`,
TOURNAMENT_ADD_ITEM_BY_WISH: (tournamentId: number) =>
`/tournament/${tournamentId}/create/by-wish`,
+ /** TEMP: 폴더 칩 작업 완료 후 TOURNAMENT_ADD_ITEM_BY_WISH 로 합침 */
+ TOURNAMENT_ADD_ITEM_BY_WISH_V2: (tournamentId: number) =>
+ `/tournament/${tournamentId}/create/by-wish-v2`,
TOURNAMENT_ITEM_EDIT: (tournamentId: number, itemId: number) =>
`/tournament/${tournamentId}/item/${itemId}`,
TOURNAMENT_LOADING: (tournamentId: number) => `/tournament/${tournamentId}/loading`,
diff --git a/apps/web/src/utils/getRouteType.test.ts b/apps/web/src/utils/getRouteType.test.ts
index f03ab0b0..1b836056 100644
--- a/apps/web/src/utils/getRouteType.test.ts
+++ b/apps/web/src/utils/getRouteType.test.ts
@@ -40,6 +40,7 @@ describe('getRouteType', () => {
it('선택 하위 세그먼트는 정해진 것만 붙는다', () => {
expect(getRouteType('/tournament/1/create')).toBe('AUTHORIZED');
expect(getRouteType('/tournament/1/create/by-wish')).toBe('AUTHORIZED');
+ expect(getRouteType('/tournament/1/create/by-wish-v2')).toBe('AUTHORIZED');
expect(getRouteType('/tournament/1/create/other')).toBeNull();
expect(getRouteType('/tournament/1/result')).toBe('AUTHORIZED');
diff --git a/apps/web/src/utils/getRouteType.ts b/apps/web/src/utils/getRouteType.ts
index 1f065551..432f9942 100644
--- a/apps/web/src/utils/getRouteType.ts
+++ b/apps/web/src/utils/getRouteType.ts
@@ -3,7 +3,8 @@ import type { RouteTypeT } from '@/types/route';
/** 토너먼트 참여 권한이 필요한 동적 라우트 패턴 */
const AUTHORIZED_ROUTE_PATTERNS = [
- /^\/tournament\/[^/]+\/create(?:\/by-wish)?$/,
+ /** TEMP: by-wish-v2 는 폴더 칩 작업용 */
+ /^\/tournament\/[^/]+\/create(?:\/by-wish(?:-v2)?)?$/,
/^\/tournament\/[^/]+\/item\/[^/]+$/,
/^\/tournament\/[^/]+\/loading$/,
/^\/tournament\/[^/]+\/match$/,
From 35c1ec73d9bbe9e75b4e31261d7b269a0abe05d1 Mon Sep 17 00:00:00 2001
From: Jung Sun A
Date: Mon, 26 Oct 2026 17:55:35 +0900
Subject: [PATCH 3/4] =?UTF-8?q?feat:=20=ED=86=A0=EB=84=88=EB=A8=BC?=
=?UTF-8?q?=ED=8A=B8=20=EC=9C=84=EC=8B=9C=20=EA=B0=80=EC=A0=B8=EC=98=A4?=
=?UTF-8?q?=EA=B8=B0=20=ED=8F=B4=EB=8D=94=20=EC=B9=A9=20=EC=B6=94=EA=B0=80?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- 위시 목록 위에 전체·폴더 칩 추가
- 칩 전환 시 선택 유지
- 폴더 0개면 칩 영역 숨김
- 위시 목록을 위시 화면과 같은 3열 그리드로 교체
- 카운터를 N/담을 수 있는 개수 선택으로 표시
- 담을 수 있는 개수: 32 에서 토너먼트에 담긴 수 차감
- 다른 참여자가 담으면 SSE 갱신으로 분모 감소
- 선택 수가 분모 초과 시 다음 버튼 비활성
- 한도 초과 클릭 시 토스트에 고정 id 부여
- 결과: 연타해도 토스트 1개 유지
- 위시 없음 모달을 시안 전용 컴포넌트로 추가
- 대안: TournamentErrorDialog 재사용
- 기각: 타이포·간격·문구가 시안과 다름
- 위시·폴더는 목 데이터 사용
- 원인: 위시·폴더 API 응답 형식 변경 예정
- 다음 버튼은 담기 API 대신 만들기 화면으로 복귀
- production 에서 notFound 처리
---
.../_components/ByWishV2Content.tsx | 99 +++++++++++++++++++
.../_components/FolderChipFilter.tsx | 42 ++++++++
.../by-wish-v2/_components/NoWishDialog.tsx | 52 ++++++++++
.../[id]/create/by-wish-v2/page.tsx | 33 +++++++
4 files changed, 226 insertions(+)
create mode 100644 apps/web/src/app/tournament/[id]/create/by-wish-v2/_components/ByWishV2Content.tsx
create mode 100644 apps/web/src/app/tournament/[id]/create/by-wish-v2/_components/FolderChipFilter.tsx
create mode 100644 apps/web/src/app/tournament/[id]/create/by-wish-v2/_components/NoWishDialog.tsx
create mode 100644 apps/web/src/app/tournament/[id]/create/by-wish-v2/page.tsx
diff --git a/apps/web/src/app/tournament/[id]/create/by-wish-v2/_components/ByWishV2Content.tsx b/apps/web/src/app/tournament/[id]/create/by-wish-v2/_components/ByWishV2Content.tsx
new file mode 100644
index 00000000..0638a4ed
--- /dev/null
+++ b/apps/web/src/app/tournament/[id]/create/by-wish-v2/_components/ByWishV2Content.tsx
@@ -0,0 +1,99 @@
+'use client';
+
+import { useState } from 'react';
+import { toast } from 'sonner';
+
+import { MOCK_FOLDERS, MOCK_WISHES } from '@/app/wish/_common/_consts/wishMock';
+import BottomCta from '@/components/bottom-cta';
+import Button from '@/components/button';
+import WishGrid from '@/components/common/wish-grid';
+import { ROUTES } from '@/consts/route';
+import { useBackWithFallback } from '@/hooks/useBackWithFallback';
+
+import { useGetTournament } from '../../../_common/_hooks/useGetTournament';
+import { MAX_SELECT } from '../../by-wish/_consts/selectLimits';
+import FolderChipFilter from './FolderChipFilter';
+import NoWishDialog from './NoWishDialog';
+
+type ByWishV2ContentProps = {
+ tournamentId: number;
+};
+
+function ByWishV2Content({ tournamentId }: ByWishV2ContentProps) {
+ const backWithFallback = useBackWithFallback();
+ const [activeFolderId, setActiveFolderId] = useState(null);
+ const [selectedWishIds, setSelectedWishIds] = useState>(new Set());
+ const { tournamentData } = useGetTournament(tournamentId);
+
+ const pending = 'pending' in tournamentData ? tournamentData.pending : null;
+ const addableCount = Math.max(MAX_SELECT - (pending?.items.length ?? 0), 0);
+ const isOverSelectionLimit = selectedWishIds.size > addableCount;
+
+ /** TEMP: 위시·폴더 API 연동 전까지 목 데이터 사용함 */
+ const items = MOCK_WISHES;
+ const folders = MOCK_FOLDERS;
+ const activeFolder = folders.find(({ id }) => id === activeFolderId);
+ const visibleItems = activeFolder
+ ? items.filter(({ wish }) => activeFolder.wishIds.includes(wish.id))
+ : items;
+
+ const hasNoWish = items.length === 0;
+
+ const handleToggleSelect = (wishId: number) => {
+ const isSelected = selectedWishIds.has(wishId);
+ if (!isSelected && selectedWishIds.size >= addableCount) {
+ toast.warning(`최대 ${addableCount}개까지 상품을 담을 수 있어요.`, { id: 'max-select' });
+ return;
+ }
+
+ setSelectedWishIds(prev => {
+ const next = new Set(prev);
+ if (isSelected) next.delete(wishId);
+ else next.add(wishId);
+ return next;
+ });
+ };
+
+ const handleBackToCreate = () => backWithFallback(ROUTES.TOURNAMENT_CREATE(tournamentId));
+
+ if (hasNoWish) return ;
+
+ return (
+ <>
+
+ {folders.length > 0 && (
+
+ )}
+
+ {selectedWishIds.size}/{addableCount}개 선택
+
+
+
+
+
+
+
+
+
+
+ >
+ );
+}
+
+export default ByWishV2Content;
diff --git a/apps/web/src/app/tournament/[id]/create/by-wish-v2/_components/FolderChipFilter.tsx b/apps/web/src/app/tournament/[id]/create/by-wish-v2/_components/FolderChipFilter.tsx
new file mode 100644
index 00000000..e12e1eb6
--- /dev/null
+++ b/apps/web/src/app/tournament/[id]/create/by-wish-v2/_components/FolderChipFilter.tsx
@@ -0,0 +1,42 @@
+import { cn } from '@/utils/cn';
+
+type FolderChipFilterProps = {
+ folders: { id: number; name: string }[];
+ activeFolderId: number | null;
+ onFolderChange: (folderId: number | null) => void;
+};
+
+function FolderChipFilter({ folders, activeFolderId, onFolderChange }: FolderChipFilterProps) {
+ const chips = [{ id: null, name: '전체' }, ...folders];
+
+ return (
+
+ {chips.map(({ id, name }) => {
+ const isActive = activeFolderId === id;
+
+ return (
+
+ );
+ })}
+
+ );
+}
+
+export default FolderChipFilter;
diff --git a/apps/web/src/app/tournament/[id]/create/by-wish-v2/_components/NoWishDialog.tsx b/apps/web/src/app/tournament/[id]/create/by-wish-v2/_components/NoWishDialog.tsx
new file mode 100644
index 00000000..c3a68fcb
--- /dev/null
+++ b/apps/web/src/app/tournament/[id]/create/by-wish-v2/_components/NoWishDialog.tsx
@@ -0,0 +1,52 @@
+import { InboxIconFill } from '@/assets/icons';
+import Button from '@/components/button';
+import ButtonLink from '@/components/button/ButtonLink';
+import {
+ Dialog,
+ DialogClose,
+ DialogContent,
+ DialogDescription,
+ DialogFooter,
+ DialogTitle,
+} from '@/components/dialog';
+import { ROUTES } from '@/consts/route';
+
+type NoWishDialogProps = {
+ onBack: () => void;
+};
+
+function NoWishDialog({ onBack }: NoWishDialogProps) {
+ return (
+
+ );
+}
+
+export default NoWishDialog;
diff --git a/apps/web/src/app/tournament/[id]/create/by-wish-v2/page.tsx b/apps/web/src/app/tournament/[id]/create/by-wish-v2/page.tsx
new file mode 100644
index 00000000..811595c6
--- /dev/null
+++ b/apps/web/src/app/tournament/[id]/create/by-wish-v2/page.tsx
@@ -0,0 +1,33 @@
+import { notFound } from 'next/navigation';
+
+import { Header, HeaderIcon } from '@/components/header';
+
+import ByWishV2Content from './_components/ByWishV2Content';
+
+type ByWishV2PageProps = {
+ params: Promise<{ id: string }>;
+};
+
+/** TEMP: 폴더 칩 작업용 임시 경로. 완료 후 by-wish 로 합치고 삭제함 */
+async function ByWishV2Page({ params }: ByWishV2PageProps) {
+ if (process.env.NEXT_PUBLIC_STAGE === 'production') notFound();
+
+ const { id } = await params;
+ const tournamentId = Number(id);
+
+ return (
+
+
+ }
+ center={
+
내 위시에서 가져오기
+ }
+ />
+
+
+
+ );
+}
+
+export default ByWishV2Page;
From 907b0d707b4178b3f34e8b0e7ad9d434fae15a28 Mon Sep 17 00:00:00 2001
From: Jung Sun A
Date: Tue, 27 Oct 2026 10:22:14 +0900
Subject: [PATCH 4/4] =?UTF-8?q?fix:=20=EC=9C=84=EC=8B=9C=20=EA=B0=80?=
=?UTF-8?q?=EC=A0=B8=EC=98=A4=EA=B8=B0=20=ED=97=A4=EB=8D=94=20=EC=95=84?=
=?UTF-8?q?=EB=9E=98=20=EB=B0=B0=EA=B2=BD=20=EB=B6=84=EB=A6=AC=20=ED=95=B4?=
=?UTF-8?q?=EC=86=8C?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- 페이지 배경을 흰색으로 바꾸고 회색은 위시 그리드 영역에만 둠
- 원인: 위시 없음 모달 상태에서 칩·카운터 영역이 없어 헤더 바로 아래 회색 배경이 드러남
---
.../[id]/create/by-wish-v2/_components/ByWishV2Content.tsx | 2 +-
apps/web/src/app/tournament/[id]/create/by-wish-v2/page.tsx | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/apps/web/src/app/tournament/[id]/create/by-wish-v2/_components/ByWishV2Content.tsx b/apps/web/src/app/tournament/[id]/create/by-wish-v2/_components/ByWishV2Content.tsx
index 0638a4ed..d942a5b3 100644
--- a/apps/web/src/app/tournament/[id]/create/by-wish-v2/_components/ByWishV2Content.tsx
+++ b/apps/web/src/app/tournament/[id]/create/by-wish-v2/_components/ByWishV2Content.tsx
@@ -73,7 +73,7 @@ function ByWishV2Content({ tournamentId }: ByWishV2ContentProps) {
-
+
-