refactor: components/ → FSD 레이어 구조 마이그레이션#381
Merged
Conversation
Tailwind fontSize 설정이 fontFamily를 지원하지 않는 한계를 플러그인으로 해결하여, text-glyph-* 클래스 사용 시 font-product 없이도 Product Sans가 자동 적용되도록 함 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
# Conflicts: # apps/web/src/app/[locale]/game/quiz/_components/CreateOrSolve/QuizTypeCard.tsx # apps/web/src/app/[locale]/game/quiz/_components/CreateOrSolve/SolveQuizConfirmDialog.tsx # apps/web/src/app/[locale]/game/quiz/create/_components/QuizCreateForm.tsx # apps/web/src/app/[locale]/game/quiz/solve/_components/done/CompleteAlertDialog.tsx # apps/web/src/app/[locale]/game/quiz/solve/_components/fail/FailAlertDialog.tsx # apps/web/src/app/[locale]/game/quiz/solve/_components/success/CorrectConfirmDialog.tsx # apps/web/src/app/[locale]/guild/_components/GuildPeopleList.tsx # apps/web/src/app/[locale]/guild/_components/SelectPersonaList.tsx # apps/web/src/app/[locale]/laboratory/_component/ConfirmDialog.tsx # apps/web/src/app/[locale]/laboratory/multi-merge/PersonaItem.tsx # apps/web/src/app/[locale]/landing/AvailablePetSection/AvailablePetSection.tsx # apps/web/src/app/[locale]/landing/ChoosePetSection/ChoosePetSection.tsx # apps/web/src/app/[locale]/landing/Footer/Footer.style.ts # apps/web/src/app/[locale]/landing/MainSection/MainSection.style.ts # apps/web/src/app/[locale]/landing/MainSection/MainSection.tsx # apps/web/src/app/[locale]/landing/MainSection/MainSlider.tsx # apps/web/src/app/[locale]/landing/RankingSection/MobileRankingTable.tsx # apps/web/src/app/[locale]/landing/RankingSection/RankingSection.tsx # apps/web/src/app/[locale]/mypage/(github-custom)/FarmPersonaSelect.tsx # apps/web/src/app/[locale]/mypage/(github-custom)/FarmType.tsx # apps/web/src/app/[locale]/mypage/(github-custom)/LinePersonaSelect.tsx # apps/web/src/app/[locale]/mypage/PersonaList.tsx # apps/web/src/app/[locale]/mypage/my-pet/_components/SelectPersonaList.tsx # apps/web/src/app/[locale]/page.tsx # apps/web/src/app/[locale]/shop/_auction/index.tsx # apps/web/src/app/[locale]/shop/_petGotcha/OnePet.tsx # apps/web/src/components/CardGame/FanDrawingGame/FanDrawingGame.tsx # apps/web/src/components/Guild/MemeberSlider.tsx
ui-panda Dialog API와 맞추기 위해 ui-tailwind Dialog에 누락된 서브컴포넌트와 prop을 추가하고, quiz 컴포넌트에서 참조하는 ConfirmDialog 컴포넌트를 생성하여 type-check 오류 해결 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
# Conflicts: # apps/web/src/app/[locale]/guild/_components/GuildPeopleList.tsx # apps/web/src/app/[locale]/guild/_components/SelectPersonaList.tsx # apps/web/src/app/[locale]/laboratory/multi-merge/PersonaItem.tsx # apps/web/src/app/[locale]/landing/MainSection/MainSlider.tsx # apps/web/src/app/[locale]/mypage/(github-custom)/FarmType.tsx # apps/web/src/app/[locale]/mypage/(github-custom)/LinePersonaSelect.tsx # apps/web/src/app/[locale]/mypage/my-pet/_components/SelectPersonaList.tsx # apps/web/src/app/[locale]/shop/_petGotcha/OnePet.tsx # apps/web/src/components/Guild/MemeberSlider.tsx
Stories files reference @storybook/react types which are not available during the library type-check. Excluding them follows the standard pattern of separating storybook config from library builds. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Made-with: Cursor
… 제거) Made-with: Cursor
Made-with: Cursor
Made-with: Cursor
- shared/: constants, utils, hooks, lib, store, i18n, styles, auth, interceptor 통합 - entities/: persona(UI+model), guild(UI), user(model), product(model) 분리 - features/: auction, change-persona-visible, feedback, laboratory-feedback, auth 분리 - widgets/: GNB 위젯 분리 - apis/ 레거시 디렉토리 완전 제거, shared/api/로 인프라 이전 의존성 흐름: app → widgets → features → entities → shared Made-with: Cursor
- apps/web/ARCHITECTURE.md: 레이어 구조, 의존성 규칙, 코드 배치 기준 상세 가이드 - CLAUDE.md: FSD 아키텍처 참조, outdated 정보 업데이트 (PandaCSS→Tailwind, apis/→FSD) - .cursor/rules/web-fsd-architecture.mdc: apps/web 파일 편집 시 자동 적용되는 FSD 규칙 Made-with: Cursor
FSD 리팩토링으로 이동된 경로 반영 Made-with: Cursor
i18n/이 src/shared/i18n/으로 이동 후 messages 경로가 ../../messages/ → ../../../messages/로 변경 필요 Made-with: Cursor
# Conflicts: # .gitignore # apps/web/package.json # apps/web/src/app/[locale]/game/quiz/_components/MobileLayout.tsx # apps/web/src/app/[locale]/guild/(subpage)/[id]/MoreMenu.tsx # apps/web/src/app/[locale]/guild/(subpage)/create/page.tsx # apps/web/src/app/[locale]/guild/(subpage)/detail/[id]/join/page.tsx # apps/web/src/app/[locale]/guild/_components/GuildModalPageLayout.tsx # apps/web/src/app/[locale]/guild/layout.tsx # apps/web/src/app/[locale]/laboratory/layout.tsx # apps/web/src/app/[locale]/landing/AvailablePetSection/AnimalSlider.style.ts # apps/web/src/app/[locale]/landing/AvailablePetSection/AnimalSlider.tsx # apps/web/src/app/[locale]/landing/AvailablePetSection/AvailablePetSection.tsx # apps/web/src/app/[locale]/landing/ChoosePetSection/ChoosePetSection.tsx # apps/web/src/app/[locale]/mypage/ProfileSection.tsx # apps/web/src/app/[locale]/mypage/layout.tsx # apps/web/src/app/[locale]/mypage/my-pet/(evolution)/EvolutionPersona.tsx # apps/web/src/app/[locale]/mypage/my-pet/SelectedPetTable.tsx # apps/web/src/app/[locale]/shop/_auction/Tab.tsx # apps/web/src/app/[locale]/shop/_auction/index.tsx # apps/web/src/components/GNB/Notification/InboxList.tsx # apps/web/src/components/PageModal/index.tsx # apps/web/src/styles/prevTextToken.ts # apps/web/src/styles/scrollStyle.ts # packages/ui/tailwind/src/components/ui/dialog.tsx # packages/ui/tailwind/src/theme/screens.ts # pnpm-lock.yaml
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- @gitanimals/ui-tailwind에 ConfirmDialog, AlertDialog 생성 - laboratory 로컬 ConfirmDialog/AlertDialog 삭제 - Quiz, Mypage 사용처를 공통 컴포넌트로 교체 - useDialog hook 내부를 공통 컴포넌트 활용하도록 리팩토링 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
RouteModal로 통합 완료되어 더 이상 사용되지 않는 InterceptingDialog를 제거한다. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
삭제된 InterceptingDialog의 gap-8 레이아웃을 지원하기 위해
RouteModal에 gap prop('sm' | 'lg')을 추가한다.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- chromatic 패키지 설치 - dev 브랜치 push 시 자동 배포 워크플로우 추가 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- render + useState 제거, isOpen: true를 meta args에 설정 - TS 에러 해결 (필수 props를 meta args에서 기본값 제공) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
모든 슬라이더가 Embla Carousel로 마이그레이션 완료되어 미사용 패키지 삭제 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Made-with: Cursor
Made-with: Cursor
Made-with: Cursor
Made-with: Cursor
Made-with: Cursor
Made-with: Cursor
Made-with: Cursor
Made-with: Cursor
Made-with: Cursor
Made-with: Cursor
Made-with: Cursor
Made-with: Cursor
Made-with: Cursor
Made-with: Cursor
Made-with: Cursor
Made-with: Cursor
Made-with: Cursor
- joinGuildAction → features/guild/actions/joinGuild ('use server')
- 미사용 gotcha server action 제거, serverActions 디렉터리 정리
- features/auth: 외부용 버튼·login만 barrel export, getGithubOauthUrl·logout 비노출
- features/feedback: 루트 index 제거, FeedbackForm은 ui 직접 import·model 상대 경로
- GlobalOverlay에서 FeedbackForm 직접 경로로 import
Made-with: Cursor
- components/serverActions 트리 제거, features/guild/actions·_components 반영 - barrel은 외부에서 쓰는 심볼만 노출한다는 원칙 명시 - Cursor 규칙·CLAUDE.md 동기화 Made-with: Cursor
Made-with: Cursor
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
src/components/내 공유 컴포넌트를 FSD 레이어에 맞게 이전shared/ui/: EmblaCarousel, Slider, Pagination, Portal, MediaQuery, Responsive, AdaptiveLink, BackTriggerfeatures/auth/ui/: AuthButtonfeatures/feedback/ui/: FeedbackForm, Select, TextArea_components/로 코로케이션Test plan
🤖 Generated with Claude Code