[fix] 모바일 앱에서 앱스토어 배너/팝업 링크 이동 안되는 문제 수정#1041
Conversation
- Swiper 클릭 이벤트 차단 옵션 비활성화 - 터치 관련 CSS 속성 추가 (touch-action, pointer-events) - Popup 링크 이동 방식 window.open → location.href 변경 - 디버깅용 콘솔 로그 추가
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Warning
|
| Cohort / File(s) | 변경 요약 |
|---|---|
앱 스토어 링크 유틸리티frontend/src/utils/appStoreLink.ts, frontend/src/utils/appStoreLink.test.ts |
APP_STORE_LINKS에서 ios를 제거하고 iphone(HTTPS)과 apple(itms-apps)을 추가. getAppStoreLink 로직을 iPhone → iphone, iPad/iPod/Macintosh → apple로 분기하도록 변경. 관련 단위테스트 업데이트. |
메인페이지 팝업frontend/src/pages/MainPage/components/Popup/Popup.tsx |
POPUP_SESSION_KEY(mainpage_popup_closed) 상수 추가. 팝업 닫기 시 세션스토리지에 기록하도록 isPopupHidden/handleClose 로직 수정. |
Estimated code review effort
🎯 3 (Moderate) | ⏱️ ~20 minutes
Possibly related issues
- [fix] MOA-519 모바일에서 앱스토어 링크로 넘어가지 않는 문제를 해결한다 #1040: APP_STORE_LINKS 확장 및 getAppStoreLink 라우팅 변경으로 모바일 앱스토어 링크 문제와 직접 관련됨.
- MOA-519: 모바일에서 앱스토어 링크로 넘어가지 않는 문제를 해결한다 — 본 PR의 변경 목적과 일치함.
Possibly related PRs
- [feature] 앱 출시 배너를 추가한다 #938: app store 링크 매핑과 getAppStoreLink 관련 변경을 다루어 코드 레벨 연관성이 높음.
- [release] 앱 출시 팝업 릴리즈 #1011: 동일 유틸리티와 팝업 관련 키/동작을 수정하는 변경이 있어 연관됨.
- [feature] 메인화면에 앱 출시 팝업을 추가한다 #1010: APP_STORE_LINKS/getAppStoreLink 및 팝업 처리와 중첩되는 변경이 있음.
Suggested labels
💻 FE, 🛠Fix
Suggested reviewers
- oesnuj
- lepitaaar
- suhyun113
업데이트된 기존 섹션
개요
앱 스토어 링크 상수를 구조적으로 분리하여 iPhone용 HTTPS 링크(iphone)와 iPad/iPod/Mac용 itms-apps 딥링크(apple)를 추가했습니다. 또한 팝업 닫기 상태를 세션스토리지에 기록하는 POPUP_SESSION_KEY(mainpage_popup_closed)를 도입했습니다. 공개 API의 함수명(getAppStoreLink)은 유지되나 APP_STORE_LINKS의 공개 속성명이 변경되었습니다(ios → iphone, apple 추가).
변경 사항
| 분류 / 파일 | 변경 요약 |
|---|---|
앱 스토어 링크 변경frontend/src/utils/appStoreLink.ts, frontend/src/utils/appStoreLink.test.ts |
APP_STORE_LINKS에서 ios를 제거하고 iphone(HTTPS)과 apple(itms-apps)을 추가. getAppStoreLink의 플랫폼별 라우팅을 iPhone / iPad/iPod/Macintosh로 분리. 단위테스트 업데이트. |
팝업 세션 키 추가frontend/src/pages/MainPage/components/Popup/Popup.tsx |
POPUP_SESSION_KEY(mainpage_popup_closed) 추가 및 닫기 동작에서 세션스토리지에 기록하도록 변경. |
예상 코드 리뷰 난이도
🎯 3 (Moderate) | ⏱️ ~20 분
관련 이슈
- [fix] MOA-519 모바일에서 앱스토어 링크로 넘어가지 않는 문제를 해결한다 #1040: 모바일에서 앱스토어 링크로 이동하지 않는 문제 해결과 직접적으로 연관됩니다.
- MOA-519: 모바일에서 앱스토어 링크로 넘어가지 않는 문제 해결 목표와 일치합니다.
관련 PR
- [feature] 메인화면에 앱 출시 팝업을 추가한다 #1010: APP_STORE_LINKS 관련 변경을 동일 파일에서 다룸.
- [feature] 앱 출시 배너를 추가한다 #938: 앱스토어 링크 매핑이 배너/네비게이션에 미치는 영향과 연관.
- [release] 앱 출시 팝업 릴리즈 #1011: 유틸리티 및 팝업 관련 변경과 교차점이 있습니다.
추천 레이블
💻 FE, 🛠Fix
추천 리뷰어
- lepitaaar
- suhyun113
- oesnuj
🚥 Pre-merge checks | ✅ 4 | ❌ 1
❌ Failed checks (1 inconclusive)
| Check name | Status | Explanation | Resolution |
|---|---|---|---|
| Out of Scope Changes check | ❓ Inconclusive | 팝업 세션 저장소 기능(Popup.tsx의 POPUP_SESSION_KEY)은 MOA-519의 주요 목표인 '앱스토어 링크 문제 해결'과의 직접적인 관련성이 명확하지 않습니다. | 팝업 세션 저장소 기능이 앱스토어 링크 문제 해결과 어떤 관계가 있는지 설명하거나, 별도의 PR로 분리하는 것을 고려하세요. |
✅ Passed checks (4 passed)
| Check name | Status | Explanation |
|---|---|---|
| Linked Issues check | ✅ Passed | 변경 사항이 MOA-519의 목표인 '모바일에서 앱스토어 링크로 넘어가지 않는 문제 해결'을 충족합니다. iPhone은 HTTPS 링크로 변경하고 다른 기기는 기존 딥링크를 유지하는 로직이 구현되었습니다. |
| Docstring Coverage | ✅ Passed | No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. |
| Description Check | ✅ Passed | Check skipped - CodeRabbit’s high-level summary is enabled. |
| Title check | ✅ Passed | PR 제목이 변경 사항의 주요 목표를 정확하게 설명합니다. 모바일 앱에서 앱스토어 배너/팝업 링크 이동 문제 수정이라는 내용이 구현된 변경 사항(앱스토어 링크 처리 개선, 팝업 세션 관리)과 일치합니다. |
✏️ Tip: You can configure your own custom pre-merge checks in the settings.
✨ Finishing touches
- 📝 Generate docstrings
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 @coderabbitai help to get the list of available commands and usage tips.
This reverts commit bb4cfef.
- iPhone: https://apps.apple.com 링크 사용 (웹뷰에서 작동) - iPad, iPod, Mac: itms-apps:// 딥링크 유지 - 관련 테스트 코드 업데이트
- 닫기/배경 클릭 시 sessionStorage에 저장 - 다시 보지 않기는 기존대로 localStorage 7일 유지
suhyun113
left a comment
There was a problem hiding this comment.
사용해보니 기존에는 팝업 닫기 버튼을 클릭해도 상세페이지를 나올 때마다 다시 노출되어 불편했는데, 이번 수정으로 닫기 버튼을 클릭 시 같은 세션에서는 팝업이 뜨지 않도록 개선된 점이 좋은 것 같습니다!
콘솔에서 sessionStorage 및 localStorage 값을 직접 조작하며 각 케이스를 테스트해봤습니다. 테스트 해보니, '닫기' 버튼을 클릭한 경우 세션 만료 후에 팝업이 정상적으로 다시 노출되고, '다시 보지 않기' 버튼을 클릭한 경우에도 7일 경과 후 재노출이 잘 동작하는 것 같습니다!
수고 많으셨습니다~🤗
#️⃣연관된 이슈
📝작업 내용
문제
1. iPhone 앱스토어 링크 HTTPS로 변경
itms-apps://URL scheme이 차단됨https://apps.apple.com링크 사용itms-apps://딥링크 유지2. 팝업 닫기 시 sessionStorage 저장
중점적으로 리뷰받고 싶은 부분(선택)
논의하고 싶은 부분(선택)
🫡 참고사항
Summary by CodeRabbit
릴리스 노트
✏️ Tip: You can customize this high-level summary in your review settings.