Skip to content

[FIX] 검사 중 뒤로가기 및 하단 탭 이동 방지#71

Merged
kbh0218 merged 2 commits into
devfrom
fix/#68-prevent-scan-navigation
May 29, 2026
Merged

[FIX] 검사 중 뒤로가기 및 하단 탭 이동 방지#71
kbh0218 merged 2 commits into
devfrom
fix/#68-prevent-scan-navigation

Conversation

@kbh0218

@kbh0218 kbh0218 commented May 27, 2026

Copy link
Copy Markdown
Contributor

Closes #68

개요

링크 검사 중 화면에서 사용자가 상단 뒤로가기, Android 시스템 뒤로가기, 하단 탭바 이동으로 검사 화면을 벗어나지 못하도록 처리했습니다.

기존 app/(tabs)/(home)/scanning.tsx는 하단 탭 구조 안의 홈 스택 화면으로 열리기 때문에, 검사 polling이 진행 중이어도 헤더 뒤로가기나 Android 시스템 뒤로가기, 하단 탭바 버튼을 통해 다른 화면으로 이동할 수 있었습니다.

이번 작업에서는 검사 애니메이션이 표시되는 진행 중 상태를 !hasError 기준으로 정리하고, 해당 상태에서는 화면 이탈 경로를 모두 차단했습니다. 상단 뒤로가기 버튼은 숨기지 않고 기존 AppIcon의 disabled 상태를 사용해 비활성 아이콘으로 표시되도록 했습니다.

애뮬레이터에서 확인해본 결과 시스템 뒤로가기, 헤더 뒤로가기, 하단 탭바 모두 비활성화 되어 뒤로가지 않는 것을 확인하였습니다.

주요 구현 내용

  • 검사 진행 중 상태를 !hasError 기준으로 정리
  • 검사 중 상단 헤더 뒤로가기 버튼을 disabled 상태로 표시
  • 검사 중 iOS swipe back 제스처 비활성화
  • 검사 중 Android 시스템 뒤로가기 버튼 차단
  • 현재 nested route가 scanning인지 판별하는 helper 추가
  • 검사 중 하단 탭 press 무시 처리
  • BottomTabBar의 기존 disabled prop으로 , 링크 추가, 폴더 탭 비활성화
  • 검사 실패 또는 timeout 이후 다시 검사, 돌아가기 버튼 흐름 유지

파일별 역할

  • app/(tabs)/(home)/scanning.tsx: 검사 진행 중 헤더 뒤로가기 disabled 표시, iOS gesture 차단, Android BackHandler 차단 처리
  • app/(tabs)/_layout.tsx: nested route state를 확인해 scanning 화면 여부를 판단하고 하단 탭 이동 및 입력 비활성화 처리

해결한 이슈 목록

  • app/(tabs)/(home)/scanning.tsx의 현재 Stack header 뒤로가기 동작 확인
  • 검사 중 상태에서 상단 헤더의 뒤로가기 버튼이 눌리지 않도록 처리
  • 상단 뒤로가기 버튼을 숨기지 않고 disabled 상태로 표시
  • Android 물리/시스템 뒤로가기 버튼을 검사 중에는 차단
  • iOS swipe back 제스처를 검사 중에는 차단
  • 검사 중 화면에서 하단 탭바 버튼을 눌러도 다른 탭으로 이동하지 않도록 처리
  • 하단 탭바의 , 링크 추가, 폴더 버튼을 검사 중에는 비활성화
  • 현재 nested route가 scanning인지 확인할 수 있도록 처리
  • BottomTabBarBottomTabItem의 기존 disabled prop을 활용해 탭 이동 차단
  • 검사 중이 아닐 때는 기존 하단 탭바 이동 정책 유지
  • 검사 timeout 또는 에러 상태에서 다시 검사, 돌아가기 버튼 동작 정책 유지
  • 검사 결과 화면으로 이동한 뒤에는 기존 뒤로가기/탭 이동 정책 유지
  • Android 에뮬레이터에서 하단 탭바 이동 차단 확인
  • Android 실제 휴대폰에서 시스템 뒤로가기 버튼 차단 확인

체크 사항

  • 커밋/코딩 컨벤션에 맞게 작성
  • 기존 polling, timeout, error 상태 전환 로직은 유지
  • 결과 화면 이동은 기존 router.replace() 흐름 유지

참고사항

  • 검사 진행 중 상태는 현재 화면의 error 여부를 기준으로 판단합니다.
  • timeout 또는 에러 발생 후에는 화면 내부 버튼으로 재검사 또는 돌아가기를 선택할 수 있습니다.
  • 하단 탭바는 nested route가 scanning일 때만 비활성화되며, 결과 화면에서는 기존 탭 이동 정책을 유지합니다.

Screenshots or Video

  • 검사로직이 돌아갈 때 화면입니다
image

@kbh0218 kbh0218 requested review from minsoo0506 and sunm2n May 27, 2026 07:49
@kbh0218 kbh0218 self-assigned this May 27, 2026
@kbh0218 kbh0218 merged commit c39201f into dev May 29, 2026
@kbh0218 kbh0218 deleted the fix/#68-prevent-scan-navigation branch May 29, 2026 13:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FIX] 검사 중 뒤로가기 및 하단 탭 이동 방지

1 participant