Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Warning Rate limit exceeded
⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. Warning
|
| Cohort / File(s) | Summary |
|---|---|
Share 버튼 변경 frontend/src/pages/ClubDetailPage/components/ShareButton/ShareButton.tsx |
RN WebView 감지(isInAppWebView → isRNWebView) 추가. RN WebView일 때 requestShare/SHARE 페이로드 전송 및 rn_webview_share 이벤트로 추적하도록 분기; Web Share 경로에 !isRNWebView 가드 추가. |
WebView 브리지 확장 frontend/src/utils/webviewBridge.ts |
WebViewMessage에 SHARE 변형 추가 및 { title, text, url } 페이로드를 보내는 requestShare 신규 export 함수 추가 (postMessageToApp 사용). |
Sequence Diagram(s)
sequenceDiagram
participant Web as Web 페이지
participant Bridge as window.ReactNativeWebView
participant Native as 네이티브 앱
participant Analytics as Analytics
Web->>Web: 사용자 클릭 (공유)
alt isRNWebView
Web->>Bridge: postMessage({ type: "SHARE", payload: { title, text, url } })
Bridge->>Native: 네이티브로 전달 (공유 처리)
Web->>Analytics: trackEvent("rn_webview_share", { method: "rn_webview_share" })
else not RN WebView
Web->>Web: navigator.share(...) 또는 클립보드 복사
Web->>Analytics: trackEvent("share", { method: "web_share" / "clipboard" })
end
Estimated code review effort
🎯 3 (Moderate) | ⏱️ ~20 minutes
Possibly related issues
- MOA-570 — WebView 공유 요청 postMessage 추가: RN WebView에서 postMessage로 공유 요청을 보내는 목표와 일치함.
- [feature] MOA-570 WebView 공유 요청 postMessage 추가 #1109 — WebView postMessage 기반 공유 경로 추가: 동일한 SHARE 메시지 및 requestShare helper 관련 작업과 일치함.
Possibly related PRs
- [feature] 카카오톡 공유 및 web share api로 변경 #1083 — ClubDetailPage ShareButton의 RN WebView 공유 흐름 및 postMessage 추가와 유사한 변경을 포함함.
- [feature] 웹뷰 감지 로직 추가 및 웹뷰용 UI 조건부 처리 #828 — in-app WebView 감지 로직을 다루는 변경과 연관됨.
- [fix] 공유하기 웹뷰 브리징 제거 #1105 — ShareButton의 RN WebView 공유 분기 관련 변경 사항과 직접적인 코드 수준 충돌 가능성이 있음.
Suggested reviewers
- suhyun113
- lepitaaar
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
| Check name | Status | Explanation |
|---|---|---|
| Description Check | ✅ Passed | Check skipped - CodeRabbit’s high-level summary is enabled. |
| Title check | ✅ Passed | PR 제목은 웹뷰 브리지 공유 기능 복구라는 주요 변경 사항을 명확하게 요약하고 있으며, 실제 코드 변경 내용과 일치합니다. |
| Linked Issues check | ✅ Passed | PR 변경 사항이 MOA-570 이슈의 WebView 공유 요청 postMessage 추가 목표를 충족합니다. webviewBridge.ts에 SHARE 메시지 타입과 requestShare 함수가 추가되었으며, ShareButton에서 이를 활용한 공유 로직이 구현되었습니다. |
| Out of Scope Changes check | ✅ Passed | 모든 변경 사항이 WebView 공유 브리지 기능 구현과 관련되어 있으며, 링크된 이슈의 범위 내에 있습니다. 외부 범위 변경은 없습니다. |
| Docstring Coverage | ✅ Passed | No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. |
✏️ Tip: You can configure your own custom pre-merge checks in the settings.
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.
| const rnWebView = (window as any).ReactNativeWebView; | ||
|
|
||
| if (isRNWebView && rnWebView?.postMessage) { | ||
| const sharePayload = { | ||
| title: clubDetail.name, | ||
| text: `지금 모아동에서 ${clubDetail.name} 동아리를 확인해보세요!\n${url}`, | ||
| url, | ||
| }; | ||
|
|
||
| rnWebView.postMessage( | ||
| JSON.stringify({ type: 'SHARE', payload: sharePayload }), | ||
| ); |
There was a problem hiding this comment.
여기에 안만들고 src/utils/webviewBridge.ts에 WebView 액션용 헬퍼 함수를 만들어서 꺼내쓰면 됩니당
거기에 postMessage 로직도 구현되어 있어서 인자만 넣고 호출해 쓰면 돼요
이유: ShareButton에 파편화되어 있던 React Native 통신 로직을 공통 유틸리티인 webviewBridge.ts로 통합하여, 통신 규격을 한곳에서 관리하고 컴포넌트의 책임을 단순화하기 위함.
#️⃣연관된 이슈
📝작업 내용
브리지작업을 안하면 안드로이드 앱에서 윈도우로 인식하기에 클립보드 복사가 됩니다. 그래서 브리지를 다시 복구했습니다.
중점적으로 리뷰받고 싶은 부분(선택)
논의하고 싶은 부분(선택)
🫡 참고사항
Summary by CodeRabbit
✏️ Tip: You can customize this high-level summary in your review settings.