Skip to content

[Feature] 정산 내역 날짜 범위 선택 추가 및 차트 탭 인터랙션 개선#67

Merged
Peter1119 merged 10 commits intomainfrom
feature/travel_code_share
Dec 17, 2025
Merged

[Feature] 정산 내역 날짜 범위 선택 추가 및 차트 탭 인터랙션 개선#67
Peter1119 merged 10 commits intomainfrom
feature/travel_code_share

Conversation

@Peter1119
Copy link
Contributor

🔗 관련 이슈

  • 관련 이슈: #

✨ 작업 내용

  • 날짜 필터링 및 차트 인터랙션 개선: 정산 내역에서 날짜 범위를 선택하여 지출 내역을 필터링하는 기능을 추가하고, 차트 바를 탭하여 해당 날짜의 내역을 조회할 수 있도록 인터랙션을 직관적으로 수정했습니다.
  • 초대 코드 기능 강화: 여행 초대 코드를 바로 확인하고 복사할 수 있는 UI와 로직(InviteCodeHelper)을 추가했습니다.
  • UI 컴포넌트 추가 및 정리: 데이터가 없을 때 표시할 EmptyCaseView와 정산 요약을 위한 StatItemView를 추가하고, 불필요한 이미지 캐싱 코드를 제거했습니다.
  • 버그 수정: 네비게이션 중복 푸시(스와이프 백 충돌) 방지 로직과 차트 탭 제스처 인식 오류를 수정했습니다.

📸 Showcase

날짜 범위 선택 초대 코드 복사
(이미지 첨부 예정) (이미지 첨부 예정)

Motivation 🥳 (코드를 추가/변경하게 된 이유)

기존 정산 내역 화면에서는 특정 기간의 지출만 모아보거나 직관적으로 날짜를 선택하기 어려웠습니다. 이를 개선하기 위해 날짜 범위 선택 기능과 차트 탭 인터랙션을 도입했습니다. 또한, 여행 멤버 초대를 더 쉽게 할 수 있도록 초대 코드 접근성을 높였습니다.

Key Changes 🔥 (주요 구현/변경 사항)

  • SettlementHeaderView, DateRangePicker: 날짜 범위 선택 UI 및 기능 구현
  • ExpenseChartView: 드래그 방식을 제거하고 chartGesture를 이용한 정확한 탭 선택 구현
  • ExpenseListFeature: 초기 진입 시 전체 여행 기간 자동 선택 로직 추가
  • MainCoordinator: 네비게이션 액션에 쿨다운(Throttle)을 적용하여 더블 탭/스와이프 충돌 방지
  • DesignSystem: EmptyCaseView 추가 및 아이콘 에셋(copy, upload) 추가

To Reviewers 🙏 (리뷰어에게 전달하고 싶은 말)

  • iOS 17 이상의 기능인 chartGesture를 사용했으므로 관련 동작이 정상적인지 확인 부탁드립니다.
  • 차트에서 날짜를 탭했을 때 하단 리스트가 해당 날짜의 데이터로 잘 필터링되는지 봐주세요.

Checklist

  • 브랜치를 가져와 작업한 경우 이전 브랜치에 PR을 보냈는지 확인
  • 필요없는 주석, 프린트문 제거했는지 확인
  • 컨벤션 지켰는지 확인
  • 다양한 디바이스에 레이아웃이 대응되는지 확인

@Peter1119 Peter1119 self-assigned this Dec 17, 2025
Copy link
Contributor

@Roy-wonji Roy-wonji left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Peter1119 수고 하셨습니다

@Environment(\.dismiss) private var dismiss

var body: some View {
NavigationView {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Peter1119 여기에서 NavigationView 를 쓰는 이유는 무엇인가요 ?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

navigation title 때문이었습니다 ~!

Text(message)
.font(.app(.title3, weight: .medium))
.foregroundStyle(Color.gray6)
.foregroundStyle(Color.black)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Peter1119 .black 만 해도 될거 같아요!

Copy link
Contributor

@minneee minneee left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

그래프 범위선택이 좀더 직관적으로 변한 것 같아서 좋네요!!
수고하셨습니다~!

@Peter1119 Peter1119 merged commit 5a51e8f into main Dec 17, 2025
1 check passed
@Peter1119 Peter1119 deleted the feature/travel_code_share branch December 17, 2025 04:21
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.

3 participants