Skip to content

Conversation

@dalzzy
Copy link
Collaborator

@dalzzy dalzzy commented Jan 8, 2026

📝 Work Description

  • 스플래시 화면에서 인앱 알림이 나타나는 문제 해결
  • textInput 모달도 userList모달처럼 모달 열렸을 때 뒷배경 애니메이션 아래에서 위로 slide가 아닌 fade되도록 수정
    (애니메이션 훅 분리 useFadeSlideAnimation)

📸 Screenshot

🚨Issue

📣 To Reviewers

  • 추가로 이건 제가 모달 수정하면서 알게 된 건데,,
    피드 신고하기 모달에서 내용 입력 후 “취소”버튼 클릭/바깥 영역 클릭해서 모달 나갔다가 다시 들어왔을 때도(+ 다른 피드로 이동해서 신고하기 모달 열렸을 때도) 전에 입력한 내용이 남아있는 문제가 있어서
    이것도 수정했습니다 !!

애플 로그인 콘솔은 .. 로그인 문제 때문에 추가해둔거라 해결되면 지우겠습니다

✅ Check List

  • 코드가 정상적으로 컴파일되나요?
  • merge할 브랜치의 위치를 확인했나요?
  • Label을 지정했나요?

Summary by CodeRabbit

릴리스 노트

  • 새 기능

    • 특정 경로에서 인앱 알림 표시를 차단하는 경로 제어 기능 추가
  • 개선사항

    • 모달의 진입/종료 애니메이션 도입으로 더 부드러운 화면 전환 제공
    • 로그인 오류 처리 시 더 자세한 관찰용 로깅 추가로 문제 진단 용이성 향상

✏️ Tip: You can customize this high-level summary in your review settings.

@dalzzy dalzzy requested a review from nabbang6 January 8, 2026 14:57
@dalzzy dalzzy self-assigned this Jan 8, 2026
@dalzzy dalzzy added 🐛BugFix 버그 수정 ♻️Refactor 리팩토링 🎨Style labels Jan 8, 2026
@coderabbitai
Copy link

coderabbitai bot commented Jan 8, 2026

Walkthrough

모달 애니메이션을 훅으로 중앙화하고, 특정 경로에서 인앱 알림 렌더링을 차단하며, Apple 로그인 실패 시 상세 오류를 로그에 출력하고 iOS 코드 서명 설정을 수동화했습니다.

Changes

Cohort / File(s) Summary
Modal 애니메이션 훅 및 적용
hooks/useFadeSlideAnimation.ts, components/Modal/TextInputModal.tsx, components/Modal/UserListModal.tsx
새로운 useFadeSlideAnimation 훅 추가 및 두 모달에서 기존 수동 애니메이션을 제거하고 훅 제공의 backdropStyle/sheetStyle로 대체. 애니메이션 관련 로직과 닫기/정리 경로가 중앙화됨.
인앱 알림 렌더링 차단 로직
components/InAppNotificationProvider.tsx
블록된 경로 프리픽스 상수와 isBlockedRoute(pathname)를 추가하고 현재 경로를 평가해 알림 오버레이 렌더링을 조건부로 차단하도록 변경.
Apple 로그인 오류 로깅 강화
api/login/apple.api.ts
appleLogin의 catch 블록에 상세 오류 로깅 추가(에러 객체, message, response, response.data 출력). 기존 실패 흐름 유지.
iOS 프로젝트 설정 변경
ios/Leenk.xcodeproj/project.pbxproj
Xcode project: DEVELOPMENT_TEAM 값 제거(빈 값 설정), CODE_SIGN_STYLE을 Manual로 변경, RNFB 관련 스크립트 빌드 페이즈에 빈 outputPaths 추가 및 일부 LDFLAGS 포맷 정리.

Sequence Diagram(s)

(생성 조건 미충족 — 생략)

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

Suggested reviewers

  • nabbang6
  • JIN921

Poem

🐰 훅을 물고 춤을 추네, 살랑살랑
알림은 길을 피해 가고, 조용히
로그는 속삭여 오류의 단서들을,
빌드는 한결 가벼워졌네, 토끼의 박수 🎉

🚥 Pre-merge checks | ✅ 2 | ❌ 1
❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 20.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed PR 제목이 변경사항의 주요 목표인 '스플래시 로그인 화면에서 인앱 알림 문제 해결'을 명확하게 요약하고 있습니다.
Description check ✅ Passed PR 설명이 필수 섹션(Work Description, Screenshot, Issue, To Reviewers, Check List)을 포함하고 있으며, 작업 내용이 충분히 상세하게 기록되어 있습니다.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings

📜 Recent review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 246f427 and 0f55572.

📒 Files selected for processing (1)
  • components/InAppNotificationProvider.tsx
🚧 Files skipped from review as they are similar to previous changes (1)
  • components/InAppNotificationProvider.tsx

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a 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 추가 권장

springConfigpreset으로부터 파생되지만, 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

📥 Commits

Reviewing files that changed from the base of the PR and between 822975a and 246f427.

📒 Files selected for processing (6)
  • api/login/apple.api.ts
  • components/InAppNotificationProvider.tsx
  • components/Modal/TextInputModal.tsx
  • components/Modal/UserListModal.tsx
  • hooks/useFadeSlideAnimation.ts
  • ios/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: 경로 차단 로직 검증 완료

usePathnameisBlockedRoute를 사용한 조건부 렌더링 구현이 깔끔합니다. 로그인/스플래시 화면에서 알림이 표시되지 않는 문제가 효과적으로 해결되었습니다.

hooks/useFadeSlideAnimation.ts (1)

1-81: 애니메이션 로직 훅 분리 - 훌륭한 리팩토링

모달 애니메이션 로직을 재사용 가능한 커스텀 훅으로 잘 추출했습니다. 코드 중복이 제거되고 유지보수성이 향상되었습니다.

components/Modal/UserListModal.tsx (3)

29-31: 애니메이션 훅 적용 완료

새로운 useFadeSlideAnimation 훅을 사용하여 인라인 애니메이션 로직을 성공적으로 제거했습니다. 코드가 더 간결해지고 유지보수가 용이해졌습니다.


40-42: 스타일 적용 확인

backdropStyleAnimatedBackdrop에 올바르게 적용되어 페이드 애니메이션이 작동합니다.


49-64: 시트 애니메이션 적용 확인

sheetStyleAnimated.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.

Comment on lines +428 to 431
CODE_SIGN_STYLE = Manual;
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = 2VCK7Z2C2W;
DEVELOPMENT_TEAM = "";
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = 5DPG335P5J;
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

head -n 475 ios/Leenk.xcodeproj/project.pbxproj | tail -n 60

Repository: 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 20

Repository: Leets-Makers/Leenk-MOBILE

Length of output: 558


🏁 Script executed:

grep -n "TODO\|FIXME\|temporary\|debug" ios/Leenk.xcodeproj/project.pbxproj

Repository: Leets-Makers/Leenk-MOBILE

Length of output: 12432


수동 코드 서명 설정이 빌드 실패를 유발할 가능성이 있습니다

CODE_SIGN_STYLEManual로 설정하고 DEVELOPMENT_TEAM을 빈 문자열로 지정하는 것은 예상치 못한 결과를 초래할 수 있습니다. 조건부 설정 "DEVELOPMENT_TEAM[sdk=iphoneos*]" = 5DPG335P5J은 실제 디바이스 빌드(iOS Device)에만 적용되며, 시뮬레이터 빌드(iphonesimulator)에서는 기본값인 빈 문자열이 사용됩니다. "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"도 마찬가지로 디바이스 전용이고, 시뮬레이터에서는 "Apple Development"가 사용됩니다.

이 설정 변경이 의도된 것인지(예: 임시 디버깅 관련) 확인해주세요. 그렇다면 TODO 또는 FIXME 주석을 추가하여 나중에 복구할 것을 표시해주세요. 의도하지 않은 변경이라면, CODE_SIGN_STYLEAutomatic으로 변경하여 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.

@dalzzy dalzzy changed the title LNK-49-leenk: 스플래시 로그인 화면에서 인앱 알림이 나타나는 문제 Refactor: LNK-49-LEENK 스플래시 로그인 화면에서 인앱 알림이 나타나는 문제 Jan 11, 2026
Copy link
Collaborator

@nabbang6 nabbang6 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

확인했습니다!!! 고생하셧어용 최고최고,,, bb

@dalzzy dalzzy merged commit f17d539 into develop Jan 12, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants