Skip to content

feat: 타임캡솝 수동 Close#2176

Merged
seong-hui merged 6 commits intodevelopfrom
feat/#2175
Feb 4, 2026
Merged

feat: 타임캡솝 수동 Close#2176
seong-hui merged 6 commits intodevelopfrom
feat/#2175

Conversation

@ljh0608
Copy link
Contributor

@ljh0608 ljh0608 commented Feb 4, 2026

🤫 쉿, 나한테만 말해줘요. 이슈넘버

  • close #

🧐 어떤 것을 변경했어요~?

🤔 그렇다면, 어떻게 구현했어요~?

❤️‍🔥 당신이 생각하는 PR포인트, 내겐 매력포인트.

📸 스크린샷, 없으면 이것 참,, 섭섭한데요?

image

@ljh0608 ljh0608 requested review from imddoy and seong-hui February 4, 2026 11:58
@ljh0608 ljh0608 self-assigned this Feb 4, 2026
@ljh0608 ljh0608 added the ✨ Feature 신규 피쳐 label Feb 4, 2026
@ljh0608 ljh0608 changed the title Feat/#2175 타임캡솝 수동 Close feat: 타임캡솝 수동 Close Feb 4, 2026
@coderabbitai
Copy link

coderabbitai bot commented Feb 4, 2026

워크스루

배너 표시 조건을 변경하고 홈 팝업에 시간 기반 표시 제어, 사용자 세대 확인, 데이터 유효성 검사를 추가하며, 팝업 클릭 동작을 모달 열기에서 링크 열기로 변경합니다.

변경사항

Cohort / File(s) 요약
배너 렌더링 조건
src/components/common/Banner/ActiveBannerSlot.tsx
isTimecapsopOpen과 isBalanceGameOpen 플래그를 true에서 false로 변경하여 ClosingBanner 표시 경로를 제거하고 BalanceGameBanner 또는 AdsBanner로 전환하는 렌더링 로직 수정.
홈 팝업 데이터 처리
src/components/common/HomePopup/HomePopupContainer.tsx
null/invalid 데이터 guard, 시간 창 검사(startDate/endDate), 최신 세대만 표시 플래그 검사를 추가하고 동적 데이터(pcImageUrl, mobileImageUrl, linkUrl, openInNewTab)로 팝업을 렌더링하도록 변경.
팝업 모달 로직
src/components/common/HomePopup/index.tsx
onOpenResolutionModal() 호출을 handleResolutionModalOpen()으로 변경하고, 팝업 버튼 클릭 동작을 모달 열기에서 팝업 링크 열기(handleClickPopup)로 변경하며, ResolutionReadModal 렌더링을 주석 처리합니다.

예상 코드 리뷰 노력

🎯 3 (Moderate) | ⏱️ ~20분

관련 PR

추천 리뷰어

  • seong-hui
  • imddoy

플래그 뒤집고, 팝업은 시간 재고,
모달은 링크로 부드럽게 흐르고,
세대를 확인하며 조건을 다지고,
배너는 갈아입고, 가드는 튼튼히 세워
새 봄의 화면이 피어나네요. 🐰✨
🚥 Pre-merge checks | ✅ 2 | ❌ 1
❌ Failed checks (1 inconclusive)
Check name Status Explanation Resolution
Description check ❓ Inconclusive PR 설명이 매우 불완전하고 대부분 템플릿만 남아있습니다. 실제 변경사항, 구현 방식, 토론사항에 대한 내용이 채워지지 않았으며, 스크린샷만 포함되어 있습니다. PR 설명에서 변경사항, 구현 방식, 검토 포인트를 구체적으로 작성해 주세요. 템플릿 주석과 빈 섹션을 채워주세요.
✅ Passed checks (2 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Title check ✅ Passed 제목이 변경사항의 주요 목적을 명확하게 설명합니다. 타임캡솝 수동 Close 기능 구현이라는 핵심 변경사항을 잘 반영하고 있습니다.

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

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feat/#2175

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.

@github-actions
Copy link

github-actions bot commented Feb 4, 2026

✨✨ 스토리북으로 확인하기 ✨✨

@github-actions
Copy link

github-actions bot commented Feb 4, 2026

🚀 프리뷰 배포 확인하기 🚀

https://dfb6a42f.sopt-internal-dev.pages.dev

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: 1

🤖 Fix all issues with AI agents
In `@src/components/common/HomePopup/HomePopupContainer.tsx`:
- Around line 34-41: The second unconditional guard is overriding the intended
flag logic; keep a single check using showOnlyToRecentGeneration and
isLastGeneration by retaining the existing if (showOnlyToRecentGeneration &&
!isLastGeneration) return null; and remove the later if (!isLastGeneration)
return null; so the component (HomePopupContainer) only hides non-last
generations when showOnlyToRecentGeneration is true.

Comment on lines +34 to 41
//최신 기수만 보기 옵션이 활성화인 경우
if (showOnlyToRecentGeneration && !isLastGeneration) {
return null;
}

if (!isLastGeneration) {
return null;
}
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

최근 기수 전용 플래그가 무력화됩니다
showOnlyToRecentGenerationfalse여도 하단의 !isLastGeneration 가드로 인해 항상 최신 기수만 노출됩니다. 플래그 의도대로 동작하려면 단일 조건으로 합쳐야 합니다.

🔧 수정 제안
-  //최신 기수만 보기 옵션이 활성화인 경우
-  if (showOnlyToRecentGeneration && !isLastGeneration) {
-    return null;
-  }
-
-  if (!isLastGeneration) {
-    return null;
-  }
+  // 최신 기수 전용 플래그가 켜진 경우에만 제한
+  if ((showOnlyToRecentGeneration ?? true) && !isLastGeneration) {
+    return null;
+  }
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
//최신 기수만 보기 옵션이 활성화인 경우
if (showOnlyToRecentGeneration && !isLastGeneration) {
return null;
}
if (!isLastGeneration) {
return null;
}
// 최신 기수 전용 플래그가 켜진 경우에만 제한
if ((showOnlyToRecentGeneration ?? true) && !isLastGeneration) {
return null;
}
🤖 Prompt for AI Agents
In `@src/components/common/HomePopup/HomePopupContainer.tsx` around lines 34 - 41,
The second unconditional guard is overriding the intended flag logic; keep a
single check using showOnlyToRecentGeneration and isLastGeneration by retaining
the existing if (showOnlyToRecentGeneration && !isLastGeneration) return null;
and remove the later if (!isLastGeneration) return null; so the component
(HomePopupContainer) only hides non-last generations when
showOnlyToRecentGeneration is true.

Copy link
Member

@seong-hui seong-hui left a comment

Choose a reason for hiding this comment

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

우왓 감사합니당

@seong-hui seong-hui merged commit 198f31e into develop Feb 4, 2026
7 checks passed
@seong-hui seong-hui deleted the feat/#2175 branch February 4, 2026 12:05
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