|
| 1 | +# Dialog V2 마이그레이션 TODO |
| 2 | + |
| 3 | +## 개요 |
| 4 | + |
| 5 | +`Dialog (v1)` → `DialogV2` 마이그레이션 작업 목록. |
| 6 | + |
| 7 | +### V1 vs V2 차이점 |
| 8 | + |
| 9 | +| | V1 (`dialog.tsx`) | V2 (`dialog-v2.tsx`) | |
| 10 | +|---|---|---| |
| 11 | +| Size | `default` / `large` / `screen` | `sm` / `md` / `lg` / `full` | |
| 12 | +| Close 버튼 | 항상 X (isShowClose로 토글) | 사이즈별 자동 분기 (sm: 없음, md: X/드래그핸들, lg/full: X/뒤로가기) | |
| 13 | +| 모바일 | 기본 center float | md: bottom-sheet, lg/full: fullscreen | |
| 14 | +| Body 스크롤 | scrollable prop on Content | `DialogV2Body` + ScrollArea 내장 | |
| 15 | +| Context | 없음 | `DialogV2SizeContext` 하위 컴포넌트에서 size 참조 가능 | |
| 16 | + |
| 17 | +### 고수준 컴포넌트 관계 |
| 18 | + |
| 19 | +``` |
| 20 | +V1 계열 (제거 대상) V2 계열 (유지) |
| 21 | +───────────────── ───────────────── |
| 22 | +Dialog (v1) DialogV2 |
| 23 | +├── AlertDialog ├── AlertDialogV2 (FlatDialog 기반) |
| 24 | +├── ConfirmDialog ├── ConfirmDialogV2 (FlatDialog 기반) |
| 25 | +└── CommonDialog └── FlatDialog |
| 26 | +``` |
| 27 | + |
| 28 | +--- |
| 29 | + |
| 30 | +## apps/web 마이그레이션 |
| 31 | + |
| 32 | +### 1. Global Dialog System |
| 33 | +- [ ] `src/components/Global/useDialog.tsx` — AlertDialogV2, ConfirmDialogV2 사용 중 (이미 V2) |
| 34 | +- [ ] `src/components/Global/GlobalComponent.tsx` — useDialog 연결 (이미 V2, 확인만) |
| 35 | + |
| 36 | +### 2. Shop - Pet Gotcha |
| 37 | +- [ ] `src/app/[locale]/(default)/shop/_petGotcha/OnePet.tsx` — Dialog (v1) → DialogV2 |
| 38 | +- [ ] `src/app/[locale]/(default)/shop/_petGotcha/TenPet.tsx` — Dialog (v1) → DialogV2 |
| 39 | + |
| 40 | +### 3. Shop - Auction |
| 41 | +- [ ] `src/app/[locale]/(default)/shop/_auction/SellSection/EditModal.tsx` — Dialog (v1) → DialogV2 |
| 42 | +- [ ] `src/app/[locale]/(default)/shop/_auction/SellSection/SellInputRow.tsx` — Dialog (v1) → DialogV2 |
| 43 | +- [ ] `src/app/[locale]/(default)/shop/_auction/PersonaSearch.tsx` — Dialog (v1) → DialogV2 |
| 44 | + |
| 45 | +### 4. Game - Quiz |
| 46 | +- [ ] `src/app/[locale]/(default)/game/quiz/solve/_components/done/CompleteAlertDialog.tsx` — Dialog (v1) → AlertDialogV2 또는 DialogV2 |
| 47 | +- [ ] `src/app/[locale]/(default)/game/quiz/solve/_components/fail/FailAlertDialog.tsx` — Dialog (v1) → AlertDialogV2 또는 DialogV2 |
| 48 | +- [ ] `src/app/[locale]/(default)/game/quiz/solve/_components/success/CorrectConfirmDialog.tsx` — Dialog (v1) → ConfirmDialogV2 또는 DialogV2 |
| 49 | +- [ ] `src/app/[locale]/(default)/game/quiz/_components/CreateOrSolve/SelectQuizType.tsx` — ConfirmDialogV2 사용 중 (이미 V2, 확인만) |
| 50 | +- [ ] `src/app/[locale]/(default)/game/quiz/create/_components/QuizCreateForm.tsx` — ConfirmDialogV2 사용 중 (이미 V2, 확인만) |
| 51 | + |
| 52 | +### 5. My Page - Pet Management |
| 53 | +- [ ] `src/app/[locale]/(default)/mypage/my-pet/(evolution)/EvolutionPersona.tsx` — CommonDialog → DialogV2 또는 FlatDialog |
| 54 | +- [ ] `src/app/[locale]/(default)/mypage/my-pet/(merge)/MergePersona.tsx` — CommonDialog + Dialog (v1) → DialogV2 |
| 55 | +- [ ] `src/app/[locale]/(default)/mypage/my-pet/SelectedPetTable.tsx` — ConfirmDialogV2 사용 중 (이미 V2, 확인만) |
| 56 | + |
| 57 | +### 6. My Page - GitHub Custom |
| 58 | +- [ ] `src/app/[locale]/(default)/mypage/(github-custom)/FarmPersonaSelect.tsx` — DialogV2 사용 중 (이미 V2, 확인만) |
| 59 | +- [ ] `src/app/[locale]/(default)/mypage/(github-custom)/LinePersonaSelect.tsx` — Dialog (v1) + ScrollArea → DialogV2 |
| 60 | + |
| 61 | +### 7. Guild |
| 62 | +- [ ] `src/app/[locale]/(default)/guild/_components/GuildPetSelectDialog.tsx` — 커스텀 다이얼로그, 내부 Dialog 확인 필요 |
| 63 | + |
| 64 | +### 8. Laboratory |
| 65 | +- [ ] `src/app/[locale]/(default)/laboratory/property-pet-sell/page.tsx` — useDialog hook (Global 시스템 경유, 확인만) |
| 66 | + |
| 67 | +### 9. Route Modal |
| 68 | +- [ ] `src/components/RouteModal.tsx` — Dialog (v1) → DialogV2 |
| 69 | + |
| 70 | +--- |
| 71 | + |
| 72 | +## apps/webview 마이그레이션 |
| 73 | + |
| 74 | +> webview는 현재 `@gitanimals/ui-panda` Dialog를 사용 중. Tailwind 마이그레이션과 함께 진행 필요. |
| 75 | +
|
| 76 | +### 10. Shop |
| 77 | +- [ ] `src/pages/shop/_components/_petGotcha/OnePet.tsx` — Panda Dialog → DialogV2 |
| 78 | +- [ ] `src/pages/shop/_components/_petGotcha/TenPet.tsx` — Panda Dialog → DialogV2 |
| 79 | +- [ ] `src/pages/shop/_components/_auction/PersonaSearch.tsx` — Panda Dialog → DialogV2 |
| 80 | +- [ ] `src/pages/shop/_components/_auction/SellSection/EditModal.tsx` — Panda Dialog → DialogV2 |
| 81 | +- [ ] `src/pages/shop/_components/_auction/SellSection/SellInputRow.tsx` — Panda Dialog → DialogV2 |
| 82 | + |
| 83 | +### 11. Game - Quiz |
| 84 | +- [ ] `src/pages/game/quiz/_components/CreateOrSolve/SolveQuizConfirmDialog.tsx` — Panda Dialog → ConfirmDialogV2 |
| 85 | +- [ ] `src/pages/game/quiz/solve/_components/done/CompleteAlertDialog.tsx` — Panda Dialog → AlertDialogV2 |
| 86 | +- [ ] `src/pages/game/quiz/solve/_components/fail/FailAlertDialog.tsx` — Panda Dialog → AlertDialogV2 |
| 87 | +- [ ] `src/pages/game/quiz/solve/_components/success/CorrectConfirmDialog.tsx` — Panda Dialog → ConfirmDialogV2 |
| 88 | + |
| 89 | +### 12. Pages |
| 90 | +- [ ] `src/pages/dev/page.tsx` — Panda Dialog → DialogV2 |
| 91 | +- [ ] `src/pages/SettingsPage.tsx` — Panda Dialog → DialogV2 |
| 92 | + |
| 93 | +--- |
| 94 | + |
| 95 | +## packages/ui/tailwind 정리 |
| 96 | + |
| 97 | +### 13. V1 컴포넌트 제거 (모든 사용처 마이그레이션 완료 후) |
| 98 | +- [ ] `src/components/ui/dialog.tsx` — V1 Dialog 제거 |
| 99 | +- [ ] `src/components/ui/alert-dialog.tsx` — V1 AlertDialog 제거 |
| 100 | +- [ ] `src/components/ui/confirm-dialog.tsx` — V1 ConfirmDialog 제거 |
| 101 | +- [ ] `src/components/common-dialog/CommonDialog.tsx` — CommonDialog 제거 |
| 102 | +- [ ] package exports에서 V1 관련 export 제거 |
| 103 | + |
| 104 | +--- |
| 105 | + |
| 106 | +## 우선순위 제안 |
| 107 | + |
| 108 | +1. **apps/web V1 → V2** (항목 2~3, 5~6, 9) — 가장 많이 사용되는 앱, 이미 V2 인프라 존재 |
| 109 | +2. **apps/web 확인만 필요** (항목 1, 4 일부, 5 일부, 8) — 이미 V2, 동작 확인 |
| 110 | +3. **apps/webview** (항목 10~12) — Panda → Tailwind 전환과 묶어서 진행 |
| 111 | +4. **V1 컴포넌트 제거** (항목 13) — 모든 마이그레이션 완료 후 최종 정리 |
| 112 | + |
| 113 | +--- |
| 114 | + |
| 115 | +## 진행 상태 |
| 116 | + |
| 117 | +| 영역 | 전체 | 완료 | 비고 | |
| 118 | +|------|------|------|------| |
| 119 | +| apps/web (V1→V2) | ~10 | 0 | | |
| 120 | +| apps/web (이미 V2) | ~7 | 0 | 확인만 | |
| 121 | +| apps/webview | ~11 | 0 | Panda→Tailwind 포함 | |
| 122 | +| packages 정리 | ~5 | 0 | 마지막 단계 | |
0 commit comments