feat: 바텀탭 프레스 햅틱 피드백 추가 - #722
Conversation
- HAPTIC_STYLE 허용 목록 9종: impact 5·selection 1·notification 3 - 원인: 토너먼트 선택 등 다른 화면 재사용 전제라 payload 에 style 포함 - BRIDGE_GATE 는 minAppVersion 1.2.3 · notifyOnBlock false - 원인: 앱 핸들러가 JS 변경뿐이라 1.2.3 런타임 OTA 로 배포 - 원인: 햅틱은 UX 보조. 구버전 앱에서 조용히 무시
- style 별로 expo-haptics impact·selection·notification 호출 - 허용 목록 밖 style 은 Light impact 로 처리 - 원인: 인바운드 payload 런타임 검증 없음
- pointerdown 시점에 LIGHT impact
- 대안: pointerup 시점
- 기각: 네이티브 탭바 대비 반 박자 늦게 느껴짐
- 드래그 중 버블이 다른 탭 칸으로 넘어갈 때 SELECTION
- 브라우저에서는 동작 없음
- 원인: WebBridge.postMessage 가 RN 웹뷰 밖에서 false 반환
- 바텀탭 안에 인라인이던 WEB_REQ_HAPTIC postMessage 를 utils/haptic 으로 이동 - 원인: 토스트·휠피커까지 발신 지점 4곳으로 증가
- success·warning·error 는 같은 이름의 notification 햅틱, info 는 LIGHT impact
- sonner 의 useSonner 로 활성 토스트를 구독해 새 id 마다 한 번 발신
- 대안: Toaster icons 에 마운트 시 발신하는 래퍼 컴포넌트
- 기각: 아이콘 렌더에 햅틱이 묶여 icon 을 끈 토스트에서 누락
- 대안: toast 호출부 57곳을 래퍼 모듈로 교체
- 기각: 호출부 전체 수정 대비 얻는 것 없음
- promise 토스트는 loading 동안 미루고 결과 type 에서 발신
- 스크롤 중 가운데 인덱스가 바뀔 때마다 SELECTION 발신 - 원인: 디바운스된 onChange 는 멈춘 뒤 한 번뿐이라 네이티브 피커의 칸별 틱과 다름 - 첫 마운트의 scrollTop 초기화에서는 발신 없음
- 이전: notification ERROR - 원인: 실기기에서 세 번 연타가 과하게 느껴짐
|
The latest updates on your projects. Learn more about Vercel for GitHub.
1 Skipped Deployment
|
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (12)
Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review. 📝 WalkthroughWalkthrough웹과 앱 사이에 햅틱 요청 메시지와 스타일 타입을 추가했습니다. 앱은 메시지를 받아 스타일에 맞는 햅틱을 실행합니다. 웹의 휠, 하단 탭, 토스트 UI에도 햅틱 요청 처리를 추가했습니다. Changes웹-앱 햅틱 요청 및 실행
Priority: ⬇️ Low Estimated code review effort: 3 (Moderate) | ~20 minutes Change: Feature Sequence Diagram(s)sequenceDiagram
participant WebUI
participant triggerHaptic
participant WebBridge
participant Page
participant handleHaptic
participant ExpoHaptics
WebUI->>triggerHaptic: 햅틱 스타일 전달
triggerHaptic->>WebBridge: WEB_REQ_HAPTIC 메시지 전송
WebBridge->>Page: 메시지 전달
Page->>handleHaptic: payload 전달
handleHaptic->>ExpoHaptics: 스타일에 따른 햅틱 호출
Suggested reviewers: Merge Risk: ⚪ Minimal · up to No actionable merge-blocking issue is established. The change adds version-gated native feedback while preserving existing interaction behavior; normal checks and device validation remain appropriate. Security Architecture ReviewSecurity architecture risk: 🔵 Low · up to The new feedback capability is narrowly scoped. No material new security vulnerability was established, but the accompanying storage setting has an unverified effect on persisted data. Retained concerns Security review detailsSecurity Blast Radius
Trust Boundaries and Controls
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
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 |
작업 요약
WEB_REQ_HAPTIC신설작업 세부 내용
브릿지 메시지 WEB_REQ_HAPTIC
HAPTIC_STYLE허용 목록 9종. impact 5·selection 1·notification 3style포함BRIDGE_GATE는 minAppVersion 1.2.3 · notifyOnBlock falseapp-v*태그를 적는 계획앱 수신 핸들러
style별로 expo-haptics impact·selection·notification 호출style은 Light impact 로 처리웹 발신 지점
useSonner로 활성 토스트를 구독해 새 id 마다 한 번 발신utils/haptic의triggerHaptic공유WebBridge.postMessage가 RN 웹뷰 밖에서 false 반환범위
style재사용 전제 확인 겸 포함배포
development채널(production-dev 빌드 40, 런타임 1.2.3)에 OTA 발행 완료. 업데이트 그룹5db0fbf5연관 이슈
closes #721
Summary by CodeRabbit