-
Notifications
You must be signed in to change notification settings - Fork 2
[fix] 탈퇴하기 텍스트 밀림 현상 수정 #152
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
Note Other AI code review bot(s) detectedCodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review. Walkthrough탈퇴 페이지 마크업과 스타일을 재구성했습니다: 전체 JSX를 Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10분
Possibly related PRs
Suggested labels
Suggested reviewers
Poem
Pre-merge checks and finishing touches✅ Passed checks (5 passed)
✨ Finishing touches
🧪 Generate unit tests (beta)
📜 Recent review detailsConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro 📒 Files selected for processing (1)
🧰 Additional context used📓 Path-based instructions (1)**/*.{ts,tsx,js,jsx}⚙️ CodeRabbit configuration file
Files:
🔇 Additional comments (1)
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 |
Summary of ChangesHello @hansololiviakim, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! 이 PR은 탈퇴하기 페이지의 사용자 인터페이스 문제를 해결합니다. 기존에 텍스트와 버튼이 의도치 않게 밀리는 현상이 발생하여 사용자 경험을 저해했는데, 새로운 스타일 컴포넌트와 CSS 포지셔닝 속성 조정을 통해 레이아웃 안정성을 확보하고 시각적인 일관성을 개선하는 데 중점을 두었습니다. Highlights
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code Review
이번 PR은 회원 탈퇴 페이지에서 '탈퇴하기' 버튼이 텍스트를 가리는 UI 버그를 수정하는 것을 목표로 합니다. position: sticky를 사용하여 버튼을 화면 하단에 고정하는 방식으로 문제를 해결하셨습니다. 전반적으로 좋은 수정 방향이지만, BottomCraWrap 컴포넌트의 스타일링에 버그를 유발할 수 있는 코드가 포함되어 있으며, 유지보수성 측면에서 개선할 수 있는 부분이 있어 리뷰 코멘트를 남깁니다.
|
🎵 Storybook Link 🎵 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
🧹 Nitpick comments (2)
src/pages/mypage/ui/unregister/index.tsx (2)
172-174: 마지막 섹션과 버튼 사이 간격을 확인하세요.하단 고정 버튼과의 간격을 위해 30px margin을 추가했습니다. 버튼이 sticky 상태일 때 콘텐츠가 겹치지 않는지 다양한 뷰포트 크기에서 테스트해보시기 바랍니다.
183-185: 버튼 여백을 컨테이너 padding으로 관리하는 것을 고려하세요.버튼 요소에 직접
margin-bottom을 적용하는 대신, 컨테이너에padding을 사용하는 것이 더 일반적인 패턴입니다.const BottomCraWrap = styled.div` position: sticky; left: 50%; bottom: 0; ${flexRowCenter} width: 100%; background-color: ${({ theme }) => theme.COLOR['gray-900']}; - & > button { - margin-bottom: 34px; - } + padding-bottom: 34px; `
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
src/pages/mypage/ui/unregister/index.tsx(4 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
**/*.{ts,tsx,js,jsx}
⚙️ CodeRabbit configuration file
**/*.{ts,tsx,js,jsx}: ## 1. 일반적인 코딩 컨벤션포맷팅
.prettierrc설정에 따라 포맷팅 확인- 들여쓰기: 2칸 스페이스
- 최대 줄 길이: 100자
- 세미콜론 사용 안함
- 따옴표: 작은따옴표 사용
- 괄호 안 공백: 있음
- 화살표 함수 괄호: 항상 사용
- 줄바꿈: LF 사용
네이밍 컨벤션
- 컴포넌트: PascalCase (예: UserProfile)
- 유틸리티/훅/변수: camelCase (예: getUserData, useUserInfo)
- 상수: UPPER_SNAKE_CASE (예: API_BASE_URL)
- 이미지 파일: kebab-case (예: user-profile-icon.png)
주석 사용
- 복잡한 로직에만 주석 추가
- 불필요한 주석 지양 (코드로 설명 가능한 것)
- TODO/FIXME 형식:
// TODO: 설명 - 작성자가독성
- 매직 넘버 지양, 의미있는 상수 사용
- 함수는 하나의 책임만 가지도록 작성 (최대 20줄 권장)
- 중첩 깊이 최소화 (3단계 이하 권장)
2. React 모범 사례
컴포넌트 작성
- 최신 React hooks 사용 권장
- 컴포넌트는 단일 책임 원칙 준수
- Presentational/Container 컴포넌트 분리
- 성능 최적화: memo, useCallback, useMemo 적절히 사용
- 대용량 리스트는 가상화 라이브러리 사용 고려
상태 관리
- Zustand와 Tanstack Query를 일관되게 사용
- 상태 구조는 정규화된 형태로 관리
- 에러 처리: Error Boundary와 try-catch 또는 onError 콜백 활용
3. 스타일링
Styled Components
- Styled Components 일관되게 사용
- 스타일드 컴포넌트명은 의미있게 작성
- 동적 스타일링은 props나 CSS 변수 활용
- 테마 시스템 활용하여 글로벌 스타일 관리
- 재사용 가능한 스타일은 mixin이나 확장으로 관리
- CSS 포맷팅 가독성 유지
- 사용하지 않는 스타일이나 중복 스타일 제거
4. Vite 및 빌드 최적화
- 모듈 import 최적화 (tree-shaking 고려)
- 환경변수는 .env 파일로 관리
- vite.config.ts에서 빌드 성능 튜닝 (sourcemap 설정, 플러그인 최적화 등)
5. 아키텍처 및 개발 환경
폴더 구조
- Feature-Sliced Design (FSD) 구조 준수
- 레이어별 참조 규칙 엄격히 적용
타입스크립트
- strict 모드 사용
- 타입 명시적으로 작성 (any 사용 지양)
- path alias (@/_) 절대 경로 import 사용
Git 훅
- Husky 설정으로 pre-commit, commit-msg 린팅 확인
6. 기타 가이드라인
- 충분한 근거와 함께 리뷰 제공
- 정보 검증 후 답변
- 간결하고 명확한 응답
- 필요시 추가 컨텍스트 요청
- 검증되지 않은 주장 지양
- 가능한 경우 출처 명시
- 별도 언급 없으면 JavaScript 기준
- 한국어로 응답
- 대부분 브라우저에서 지원하는 ES6+ 기능 활용
- 코드 리뷰를 통한 유지보수성 향상에 적극 활용
Files:
src/pages/mypage/ui/unregister/index.tsx
🧬 Code graph analysis (1)
src/pages/mypage/ui/unregister/index.tsx (2)
src/shared/styles/mixins.ts (1)
flexRowCenter(3-8)src/shared/styles/theme.ts (1)
theme(3-122)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: Run Chromatic
🔇 Additional comments (1)
src/pages/mypage/ui/unregister/index.tsx (1)
168-170: LGTM!
position: relative를 사용하여 하위 sticky 요소의 positioning context를 제공하는 적절한 구조입니다.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (2)
src/pages/mypage/ui/unregister/index.tsx (2)
66-66: UnregisterWrap의 필요성을 검토해보세요.현재
UnregisterWrap은position: relative만 설정되어 있습니다.BottomCraWrap이sticky포지셔닝을 사용하므로 부모의relative포지셔닝은 실제로 영향을 주지 않습니다.만약 향후 레이아웃 조정을 위한 여지로 남겨둔 것이라면 문제없지만, 현재 시점에서는 불필요할 수 있습니다.
필요하다면 다음과 같이 제거할 수 있습니다:
return ( - <UnregisterWrap> + <> <SubHeader title="탈퇴하기" /> {/* ... */} - </UnregisterWrap> + </> ) } -const UnregisterWrap = styled.div` - position: relative; -`Also applies to: 162-162, 168-170
176-183: 레이아웃 수정이 적절하게 구현되었습니다.
position: sticky변경과 배경색 추가로 버튼이 올바르게 고정되며, 이전 리뷰에서 지적된left: 50%문제도 해결되었습니다. 자식 요소의margin-bottom대신 컨테이너의padding-bottom을 사용한 것도 더 나은 접근입니다.
선택적으로 상단 패딩과 z-index를 추가할 수 있습니다.
콘텐츠와 버튼 사이의 간격을 더 확보하고 레이어링을 명시적으로 보장하려면 다음을 고려해보세요:
const BottomCraWrap = styled.div` position: sticky; bottom: 0; ${flexRowCenter} width: 100%; background-color: ${({ theme }) => theme.COLOR['gray-900']}; + padding-top: 20px; padding-bottom: 34px; + z-index: ${({ theme }) => theme.Z_INDEX.overlay}; `
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
src/pages/mypage/ui/unregister/index.tsx(4 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
**/*.{ts,tsx,js,jsx}
⚙️ CodeRabbit configuration file
**/*.{ts,tsx,js,jsx}: ## 1. 일반적인 코딩 컨벤션포맷팅
.prettierrc설정에 따라 포맷팅 확인- 들여쓰기: 2칸 스페이스
- 최대 줄 길이: 100자
- 세미콜론 사용 안함
- 따옴표: 작은따옴표 사용
- 괄호 안 공백: 있음
- 화살표 함수 괄호: 항상 사용
- 줄바꿈: LF 사용
네이밍 컨벤션
- 컴포넌트: PascalCase (예: UserProfile)
- 유틸리티/훅/변수: camelCase (예: getUserData, useUserInfo)
- 상수: UPPER_SNAKE_CASE (예: API_BASE_URL)
- 이미지 파일: kebab-case (예: user-profile-icon.png)
주석 사용
- 복잡한 로직에만 주석 추가
- 불필요한 주석 지양 (코드로 설명 가능한 것)
- TODO/FIXME 형식:
// TODO: 설명 - 작성자가독성
- 매직 넘버 지양, 의미있는 상수 사용
- 함수는 하나의 책임만 가지도록 작성 (최대 20줄 권장)
- 중첩 깊이 최소화 (3단계 이하 권장)
2. React 모범 사례
컴포넌트 작성
- 최신 React hooks 사용 권장
- 컴포넌트는 단일 책임 원칙 준수
- Presentational/Container 컴포넌트 분리
- 성능 최적화: memo, useCallback, useMemo 적절히 사용
- 대용량 리스트는 가상화 라이브러리 사용 고려
상태 관리
- Zustand와 Tanstack Query를 일관되게 사용
- 상태 구조는 정규화된 형태로 관리
- 에러 처리: Error Boundary와 try-catch 또는 onError 콜백 활용
3. 스타일링
Styled Components
- Styled Components 일관되게 사용
- 스타일드 컴포넌트명은 의미있게 작성
- 동적 스타일링은 props나 CSS 변수 활용
- 테마 시스템 활용하여 글로벌 스타일 관리
- 재사용 가능한 스타일은 mixin이나 확장으로 관리
- CSS 포맷팅 가독성 유지
- 사용하지 않는 스타일이나 중복 스타일 제거
4. Vite 및 빌드 최적화
- 모듈 import 최적화 (tree-shaking 고려)
- 환경변수는 .env 파일로 관리
- vite.config.ts에서 빌드 성능 튜닝 (sourcemap 설정, 플러그인 최적화 등)
5. 아키텍처 및 개발 환경
폴더 구조
- Feature-Sliced Design (FSD) 구조 준수
- 레이어별 참조 규칙 엄격히 적용
타입스크립트
- strict 모드 사용
- 타입 명시적으로 작성 (any 사용 지양)
- path alias (@/_) 절대 경로 import 사용
Git 훅
- Husky 설정으로 pre-commit, commit-msg 린팅 확인
6. 기타 가이드라인
- 충분한 근거와 함께 리뷰 제공
- 정보 검증 후 답변
- 간결하고 명확한 응답
- 필요시 추가 컨텍스트 요청
- 검증되지 않은 주장 지양
- 가능한 경우 출처 명시
- 별도 언급 없으면 JavaScript 기준
- 한국어로 응답
- 대부분 브라우저에서 지원하는 ES6+ 기능 활용
- 코드 리뷰를 통한 유지보수성 향상에 적극 활용
Files:
src/pages/mypage/ui/unregister/index.tsx
🧬 Code graph analysis (1)
src/pages/mypage/ui/unregister/index.tsx (2)
src/shared/styles/mixins.ts (1)
flexRowCenter(3-8)src/shared/styles/theme.ts (1)
theme(3-122)
🔇 Additional comments (1)
src/pages/mypage/ui/unregister/index.tsx (1)
133-133: 텍스트 밀림 문제를 효과적으로 해결했습니다.마지막 약관 항목에
margin-bottom: 30px을 추가하여 sticky 버튼과의 겹침을 방지한 접근 방식이 적절합니다. 이는 PR 목표인 텍스트 밀림 현상을 직접적으로 해결합니다.Also applies to: 142-142, 172-174
🛰️ 관련 이슈
✨ 주요 변경 사항
🚀 알게된 점
Summary by CodeRabbit
Bug Fixes
Style
Refactor