-
Notifications
You must be signed in to change notification settings - Fork 3
Refactor: LNK-49-LEENK 스플래시 로그인 화면에서 인앱 알림이 나타나는 문제 #69
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
The head ref may contain hidden characters: "LNK-49-Leenk-\uC2A4\uD50C\uB798\uC2DC-\uB85C\uADF8\uC778-\uD654\uBA74\uC5D0\uC11C-\uC778\uC571-\uC54C\uB9BC\uC774-\uB098\uD0C0\uB098\uB294-\uBB38\uC81C"
Conversation
Walkthrough모달 애니메이션을 훅으로 중앙화하고, 특정 경로에서 인앱 알림 렌더링을 차단하며, Apple 로그인 실패 시 상세 오류를 로그에 출력하고 iOS 코드 서명 설정을 수동화했습니다. Changes
Sequence Diagram(s)(생성 조건 미충족 — 생략) Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related PRs
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing touches
📜 Recent review detailsConfiguration used: Organization UI Review profile: CHILL Plan: Pro 📒 Files selected for processing (1)
🚧 Files skipped from review as they are similar to previous changes (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 |
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: 2
🤖 Fix all issues with AI agents
In @components/InAppNotificationProvider.tsx:
- Around line 50-53: The isBlockedRoute implementation currently only blocks
exact matches in BLOCKED_PATHS (e.g., '/' and '/signup'), so signup subroutes
like '/signup/terms' are not blocked; update isBlockedRoute to treat entries in
BLOCKED_PATHS as prefixes by checking either equality or
pathname.startsWith(blocked + '/') (i.e., for each blocked value test pathname
=== blocked || pathname.startsWith(blocked + '/')) so all '/signup/*' subpaths
are also blocked.
In @ios/Leenk.xcodeproj/project.pbxproj:
- Around line 428-431: The project file currently sets CODE_SIGN_STYLE = Manual
with DEVELOPMENT_TEAM = "" and a conditional "DEVELOPMENT_TEAM[sdk=iphoneos*]" =
5DPG335P5J which can cause simulator build failures; either revert to automatic
signing by setting CODE_SIGN_STYLE = Automatic and provide a valid
DEVELOPMENT_TEAM value (or remove the empty default) so Xcode manages profiles,
or if Manual was intentional add a clear TODO/FIXME comment in the pbxproj next
to CODE_SIGN_STYLE and DEVELOPMENT_TEAM explaining the reason and that this must
be reverted for CI/simulator builds; update the entries referencing
CODE_SIGN_STYLE, DEVELOPMENT_TEAM, and "DEVELOPMENT_TEAM[sdk=iphoneos*]"
accordingly.
🧹 Nitpick comments (3)
api/login/apple.api.ts (1)
18-21: 임시 디버깅 코드 제거 추적 필요Apple 로그인 문제 해결을 위한 임시 콘솔 로그가 추가되었습니다. PR 설명에 따르면 로그인 이슈 해결 후 제거 예정이므로, 이를 추적할 수 있도록 TODO 코멘트나 별도 이슈를 생성하는 것을 권장합니다.
이 작업을 추적할 이슈를 생성하거나 TODO 코멘트를 추가하시겠습니까?
hooks/useFadeSlideAnimation.ts (1)
40-73: useEffect 의존성 배열에 preset 추가 권장
springConfig가preset으로부터 파생되지만,preset이 의존성 배열에 포함되지 않았습니다. 일반적으로preset은 컴포넌트 생명주기 동안 변경되지 않지만, 완전성을 위해 추가하는 것을 권장합니다.♻️ 제안하는 수정
}, [visible, fadeAnim, slideAnim, initialOffset]); + }, [visible, fadeAnim, slideAnim, initialOffset, preset]);또는
springConfig를 의존성 배열에 직접 추가:- }, [visible, fadeAnim, slideAnim, initialOffset]); + }, [visible, fadeAnim, slideAnim, initialOffset, springConfig]);ios/Leenk.xcodeproj/project.pbxproj (1)
565-565: OTHER_LDFLAGS 값의 불필요한 공백
OTHER_LDFLAGS값이"$(inherited) "로 설정되어 있으며 끝에 불필요한 공백이 있습니다. 이것이 Xcode 구문 오류를 수정하기 위한 의도적인 변경이 아니라면, 다음pod install실행 시 CocoaPods가 올바른 형식으로 재생성할 것입니다.Also applies to: 631-631
📜 Review details
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (6)
api/login/apple.api.tscomponents/InAppNotificationProvider.tsxcomponents/Modal/TextInputModal.tsxcomponents/Modal/UserListModal.tsxhooks/useFadeSlideAnimation.tsios/Leenk.xcodeproj/project.pbxproj
🧰 Additional context used
🧠 Learnings (3)
📓 Common learnings
Learnt from: dalzzy
Repo: Leets-Makers/Leenk-MOBILE PR: 21
File: package.json:0-0
Timestamp: 2025-07-02T12:27:28.491Z
Learning: dalzzy prefers to uninstall unused libraries rather than fixing version compatibility issues. When a dependency is not actually used in the code, they remove it entirely instead of maintaining it.
📚 Learning: 2025-08-09T13:35:33.951Z
Learnt from: JIN921
Repo: Leets-Makers/Leenk-MOBILE PR: 39
File: app/(post)/feed.tsx:119-121
Timestamp: 2025-08-09T13:35:33.951Z
Learning: Leenk MOBILE 프로젝트의 일부 PopupModal에서는 디자인 요구사항에 따라 의도적으로 왼쪽=확인, 오른쪽=취소로 버튼 매핑을 반대로 설정할 수 있다. 특히 app/(post)/feed.tsx의 글 작성 취소 확인 모달은 이러한 의도적인 디자인이 적용되어 있다.
Applied to files:
components/Modal/TextInputModal.tsx
📚 Learning: 2025-07-11T09:15:26.964Z
Learnt from: dalzzy
Repo: Leets-Makers/Leenk-MOBILE PR: 27
File: ios/Leenk.xcodeproj/project.pbxproj:285-306
Timestamp: 2025-07-11T09:15:26.964Z
Learning: dalzzy prefers to prioritize feature implementation over build optimization tasks when they cause build errors. They reverted changes to avoid syntax errors in Xcode project files and questioned whether Dev bundle removal from Release builds is necessary.
Applied to files:
ios/Leenk.xcodeproj/project.pbxproj
🧬 Code graph analysis (3)
components/Modal/UserListModal.tsx (1)
hooks/useFadeSlideAnimation.ts (1)
useFadeSlideAnimation(30-81)
components/Modal/TextInputModal.tsx (4)
hooks/useFadeSlideAnimation.ts (1)
useFadeSlideAnimation(30-81)theme/globalStyles.ts (1)
height(14-14)components/common/Input.tsx (1)
Title(71-75)components/Modal/PopupModal.tsx (1)
SubText(116-124)
hooks/useFadeSlideAnimation.ts (1)
theme/globalStyles.ts (1)
height(14-14)
🔇 Additional comments (11)
components/InAppNotificationProvider.tsx (1)
82-84: 경로 차단 로직 검증 완료
usePathname과isBlockedRoute를 사용한 조건부 렌더링 구현이 깔끔합니다. 로그인/스플래시 화면에서 알림이 표시되지 않는 문제가 효과적으로 해결되었습니다.hooks/useFadeSlideAnimation.ts (1)
1-81: 애니메이션 로직 훅 분리 - 훌륭한 리팩토링모달 애니메이션 로직을 재사용 가능한 커스텀 훅으로 잘 추출했습니다. 코드 중복이 제거되고 유지보수성이 향상되었습니다.
components/Modal/UserListModal.tsx (3)
29-31: 애니메이션 훅 적용 완료새로운
useFadeSlideAnimation훅을 사용하여 인라인 애니메이션 로직을 성공적으로 제거했습니다. 코드가 더 간결해지고 유지보수가 용이해졌습니다.
40-42: 스타일 적용 확인
backdropStyle이AnimatedBackdrop에 올바르게 적용되어 페이드 애니메이션이 작동합니다.
49-64: 시트 애니메이션 적용 확인
sheetStyle이Animated.View에 올바르게 적용되어 슬라이드 애니메이션이 작동합니다. 기존 기능을 유지하면서 코드가 더 깔끔해졌습니다.components/Modal/TextInputModal.tsx (5)
43-47: 애니메이션 훅 적용 - 부드러운 프리셋 사용
soft프리셋과 커스텀initialOffset을 사용하여 TextInputModal에 맞는 애니메이션을 적용했습니다. UserListModal과 일관된 방식으로 애니메이션을 관리하게 되었습니다.
85-88: 텍스트 유지 버그 수정 완료
handleClose함수를 도입하여 모달을 닫을 때 입력된 텍스트를 초기화하도록 했습니다. 이는 PR 목표에서 언급된 "피드 신고 모달이 취소/외부 클릭/다른 피드로 재오픈 시 이전 내용을 유지하는 문제"를 해결합니다.
90-111: 모든 종료 경로에서 텍스트 초기화 확인성공, 실패, 취소 등 모든 경로에서
handleClose를 호출하여 텍스트가 올바르게 초기화됩니다. 일관된 정리(cleanup) 로직이 잘 구현되었습니다.
117-132: 배경 터치 시 키보드 해제 UX 개선배경을 터치하면 키보드가 자동으로 해제되고 모달이 닫히도록 개선했습니다. 사용자 경험이 향상되었습니다.
135-169: 모달 구조 리팩토링 완료
animationType="none"으로 변경하고 커스텀 애니메이션을 적용하여 UserListModal과 동일한 페이드 효과를 사용하도록 했습니다. PR 목표에서 언급한 대로 배경 애니메이션이 슬라이드 대신 페이드를 사용하도록 수정되었습니다.ios/Leenk.xcodeproj/project.pbxproj (1)
258-259: RNFB 빌드 페이즈의 빈 outputPaths는 의도된 동작입니다
[CP-User] [RNFB] Core Configuration과[CP-User] [RNFB] Crashlytics Configuration빌드 페이즈의 빈outputPaths는 CocoaPods에서 생성한 표준 구성입니다. 이 설정 스크립트들은 매번 실행되도록 의도되었으며, 이는 React Native Firebase의 표준 패턴입니다. Xcode가 경고를 표시할 수 있지만 빌드 프로세스에 영향을 주지 않으므로 변경할 필요가 없습니다.Likely an incorrect or invalid review comment.
| CODE_SIGN_STYLE = Manual; | ||
| CURRENT_PROJECT_VERSION = 1; | ||
| DEVELOPMENT_TEAM = 2VCK7Z2C2W; | ||
| DEVELOPMENT_TEAM = ""; | ||
| "DEVELOPMENT_TEAM[sdk=iphoneos*]" = 5DPG335P5J; |
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.
🧩 Analysis chain
🏁 Script executed:
head -n 475 ios/Leenk.xcodeproj/project.pbxproj | tail -n 60Repository: Leets-Makers/Leenk-MOBILE
Length of output: 2235
🏁 Script executed:
grep -n "CODE_SIGN_STYLE\|DEVELOPMENT_TEAM\|PROVISIONING_PROFILE" ios/Leenk.xcodeproj/project.pbxproj | head -n 20Repository: Leets-Makers/Leenk-MOBILE
Length of output: 558
🏁 Script executed:
grep -n "TODO\|FIXME\|temporary\|debug" ios/Leenk.xcodeproj/project.pbxprojRepository: Leets-Makers/Leenk-MOBILE
Length of output: 12432
수동 코드 서명 설정이 빌드 실패를 유발할 가능성이 있습니다
CODE_SIGN_STYLE을 Manual로 설정하고 DEVELOPMENT_TEAM을 빈 문자열로 지정하는 것은 예상치 못한 결과를 초래할 수 있습니다. 조건부 설정 "DEVELOPMENT_TEAM[sdk=iphoneos*]" = 5DPG335P5J은 실제 디바이스 빌드(iOS Device)에만 적용되며, 시뮬레이터 빌드(iphonesimulator)에서는 기본값인 빈 문자열이 사용됩니다. "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"도 마찬가지로 디바이스 전용이고, 시뮬레이터에서는 "Apple Development"가 사용됩니다.
이 설정 변경이 의도된 것인지(예: 임시 디버깅 관련) 확인해주세요. 그렇다면 TODO 또는 FIXME 주석을 추가하여 나중에 복구할 것을 표시해주세요. 의도하지 않은 변경이라면, CODE_SIGN_STYLE을 Automatic으로 변경하여 Xcode가 자동으로 적절한 팀과 프로비저닝 프로필을 관리하도록 설정하는 것을 권장합니다.
🤖 Prompt for AI Agents
In @ios/Leenk.xcodeproj/project.pbxproj around lines 428 - 431, The project file
currently sets CODE_SIGN_STYLE = Manual with DEVELOPMENT_TEAM = "" and a
conditional "DEVELOPMENT_TEAM[sdk=iphoneos*]" = 5DPG335P5J which can cause
simulator build failures; either revert to automatic signing by setting
CODE_SIGN_STYLE = Automatic and provide a valid DEVELOPMENT_TEAM value (or
remove the empty default) so Xcode manages profiles, or if Manual was
intentional add a clear TODO/FIXME comment in the pbxproj next to
CODE_SIGN_STYLE and DEVELOPMENT_TEAM explaining the reason and that this must be
reverted for CI/simulator builds; update the entries referencing
CODE_SIGN_STYLE, DEVELOPMENT_TEAM, and "DEVELOPMENT_TEAM[sdk=iphoneos*]"
accordingly.
nabbang6
left a comment
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.
확인했습니다!!! 고생하셧어용 최고최고,,, bb
📝 Work Description
(애니메이션 훅 분리
useFadeSlideAnimation)📸 Screenshot
🚨Issue
📣 To Reviewers
피드 신고하기 모달에서 내용 입력 후 “취소”버튼 클릭/바깥 영역 클릭해서 모달 나갔다가 다시 들어왔을 때도(+ 다른 피드로 이동해서 신고하기 모달 열렸을 때도) 전에 입력한 내용이 남아있는 문제가 있어서
이것도 수정했습니다 !!
애플 로그인 콘솔은 .. 로그인 문제 때문에 추가해둔거라 해결되면 지우겠습니다
✅ Check List
Summary by CodeRabbit
릴리스 노트
새 기능
개선사항
✏️ Tip: You can customize this high-level summary in your review settings.