- 헤더 오른쪽 버튼 시스템 구현
- ContextType에 setOnRightClick 추가
- useSetOnRightClick 훅 추가
- HeaderNavigationProps에 onRightClick 추가
- HeaderType.LeftArrow에 오른쪽 삭제 버튼 렌더링
- 사용자 삭제 API 및 타입 추가
- UserDeleteParams, UserDeleteResponse 인터페이스 추가
- use-user-delete-mutation 훅 생성
- API_URL_USER.deleteUser() 엔드포인트 사용
- 사용자 설정 페이지에서 삭제 기능 구현
- 현재 로그인한 사용자가 아닐 경우에만 삭제 버튼 표시
- showConfirm 다이얼로그로 삭제 확인
- 삭제 성공 시 토스트 메시지 표시 및 목록 페이지로 이동
- 목록 페이지에서 refresh 상태로 자동 갱신
- showConfirm 위젯 추가
- Promise 기반의 확인 다이얼로그
- 취소/확인 버튼 지원
- 다국어 지원 (common.cancel, common.confirm)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- SaveImageResponse 인터페이스 수정: success/error 필드 제거, message 필드 추가
- 네이티브는 {success: true, data: {filePath, message}} 형태로 응답하지만
appBridge.sendMessage는 response.data만 반환하므로 인터페이스를 실제 반환값에 맞춤
- 이미지 저장 성공 체크 로직을 result?.success에서 result?.filePath로 변경
- 이미지 저장 관련 로컬라이제이션 키 추가 (imageSaved, imageSaveFailed, imageGenerationFailed)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
iOS 웹뷰에서 이미지 다운로드를 위한 네이티브 브릿지 기능을
React Hook 패턴으로 리팩토링하여 일관성과 재사용성 개선
변경사항:
- useAppBridge Hook에 saveImage 메서드 추가
- utils/appBridge.ts에 saveImage 메서드 구현
- 세 개의 샘플 컴포넌트에서 useAppBridge Hook 사용
* cash-receipt-sample.tsx
* deposit-receipt-sample.tsx
* tax-invoice-sample.tsx
- 직접 appBridge import 제거, Hook 패턴으로 통일
- TypeScript 타입 안전성 개선 (null 체크 추가)
기술 개선:
- React Hook 패턴으로 컴포넌트 라이프사이클과 통합
- safeCall을 통한 자동 에러 처리
- iOS 환경에서만 네이티브 브릿지 사용
- Android/웹은 기존 다운로드 방식 유지
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
충돌 해결: iOS 네이티브 브릿지와 로딩 스피너 통합
- iOS 환경에서 네이티브 브릿지로 이미지 저장
- 로딩 스피너 유지
- 파일명 형식 통일 (cash-receipt-YYMMDDHHmmss.png)
- 다운로드 후 자동으로 팝업 닫기
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- iOS 환경에서 이미지 다운로드가 안 되는 문제 해결
- 네이티브 앱 브릿지를 통한 이미지 저장 기능 구현
- iOS만 네이티브 브릿지 사용, Android/웹은 기존 방식 유지
변경사항:
- BridgeMessageType에 SAVE_IMAGE 타입 추가
- SaveImageRequest, SaveImageResponse 인터페이스 정의
- appBridge.saveImage() 메서드 구현
- cash-receipt-sample.tsx에서 iOS 환경 감지 및 네이티브 저장 처리
- 네이티브 앱 개발자를 위한 구현 가이드 문서 추가
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add translation keys for download bottom sheet messages
- Replace hardcoded Korean text with translation function calls
- Add error handling for empty notice detail response
- Support multi-language functionality
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Replace all hardcoded Korean text with i18n translation keys in
common bottom sheet components for email selection and download
type selection.
Components localized:
- email-bottom-sheet: Title, image save label, receive by email label,
image requested snackbar message, close button alt, request button
- download-type-bottom-sheet: Title, download method selection labels,
image/email alt texts, close button alt
Translation keys added to en.json:
- selectEmailAddress: "Select Email Address"
- imageSave: "Save as Image"
- receiveByEmail: "Receive by Email"
- mail: "Mail"
- image: "Image"
- request: "Request"
- imageRequested: "Image has been requested."
- selectDownloadMethod: "Select Download Method"
All bottom sheet UI text now supports internationalization.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Replace hardcoded Korean sort labels with translation keys
- Add useTranslation hook to sort-type-box.tsx
- Add common.highAmountOrder to ko.json and en.json
- Use filter.sortOrders.latest for latest sort option
- Convert default sortOptions to use t() function
Now supports dynamic language switching for sort options.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>