Skip to content

Comments

Style/#102 뷰 연결 완료#112

Merged
wotjs020708 merged 6 commits intodevelopfrom
style/#102-treatementview
Jan 20, 2026
Merged

Style/#102 뷰 연결 완료#112
wotjs020708 merged 6 commits intodevelopfrom
style/#102-treatementview

Conversation

@wotjs020708
Copy link
Contributor

@wotjs020708 wotjs020708 commented Jan 19, 2026

🔗 연결된 이슈

📄 작업 내용

  • 시술 플로우 뷰 연결 완료
구현 내용 IPhone 16 pro IPhone 13 mini
GIF
  • ViewFatory에 추가
  • PresentationDependencyAssembler에 추가
  • CalendarRoute 수정
  • CalendarCoordinatorView 수정

@wotjs020708 wotjs020708 requested a review from a team January 19, 2026 17:26
@wotjs020708 wotjs020708 self-assigned this Jan 19, 2026
@wotjs020708 wotjs020708 requested review from soseoyo12, sum130 and y-eonee and removed request for a team January 19, 2026 17:26
@wotjs020708 wotjs020708 linked an issue Jan 19, 2026 that may be closed by this pull request
1 task
@coderabbitai
Copy link

coderabbitai bot commented Jan 19, 2026

Caution

Review failed

The pull request is closed.

📝 Walkthrough

Walkthrough

캘린더 네비게이션에 .treatment 경로를 추가하고 여러 뷰에 CalendarCoordinator/TabBarCoordinator 환경 객체를 주입해 탭바 숨김/표시 및 coordinator 기반 푸시/팝 동작을 연결함. 일부 뷰 레이아웃(간격, 패딩)과 선택 목록의 조건부 렌더링도 조정됨. (50단어 이내)

Changes

Cohort / File(s) Summary
Calendar Coordinator
Cherrish-iOS/Cherrish-iOS/Presentation/Feature/Calendar/Coordinator/CalendarCoordinator.swift, .../Coordinator/CalendarCoordinatorView.swift
CalendarRoute.treatment 추가 및 CalendarCoordinatorView.treatment 분기(Factory로 TreatmentView 생성). .selectTreatment 진입 시 tabBarCoordinator.isTabbarHidden = true 설정.
Calendar View Navigation
Cherrish-iOS/Cherrish-iOS/Presentation/Feature/Calendar/CalendarMain/CalendarView.swift
@EnvironmentObjectCalendarCoordinator 주입. 헤더 플러스 버튼 및 빈 상태 버튼이 calendarCoordinator.push(.selectTreatment) 호출하도록 변경.
SelectTreatment flow
Cherrish-iOS/Cherrish-iOS/Presentation/Feature/Calendar/SelectTreatment/SelectTreatmentView.swift
"다음" 버튼 액션에 분기 추가: .notSelected.noTreatment, .available.treatment. (빈 액션 제거).
Treatment / NoTreatment views
.../Treatment/View/Treatment/TreatmentView.swift, .../Treatment/View/NoTreatment/NoTreatmentView.swift
두 뷰에 @EnvironmentObjectCalendarCoordinator/TabBarCoordinator 추가. 좌/우 버튼에서 coordinator 팝/팝투루트 호출 및 탭바 숨김·표시 로직 추가. onAppear에서 탭바 숨김 설정. NoTreatment 텍스트 일부 변경.
UI layout tweaks
.../Treatment/View/TargetDdaySettingView.swift, .../Treatment/View/DownTimeSettingView.swift, .../Treatment/View/SelectedTreatmentSheetView.swift
TargetDday: HStack→VStack으로 레이아웃 조정 및 패딩/Spacer 변경. DownTime: 상단 Spacer 추가·기존 패딩 제거. SelectedTreatmentSheet: 아이템 간격 축소, 스크롤 마커·그라데이션을 항목 수 조건부 렌더링으로 변경 및 스크롤 제어 제거.
Dependency Injection
Cherrish-iOS/Cherrish-iOS/Presentation/PresentationDependencyAssembler.swift
SelectTreatmentViewModelTreatmentViewModel을 DIContainer에 등록.

Sequence Diagram

sequenceDiagram
    participant User
    participant CalendarView
    participant Coordinator as CalendarCoordinator
    participant Select as SelectTreatmentView
    participant Treatment as TreatmentView
    participant NoT as NoTreatmentView
    participant TabBar as TabBarCoordinator

    User->>CalendarView: 플러스 또는 빈 버튼 탭
    CalendarView->>Coordinator: push(.selectTreatment)
    Coordinator->>Select: present SelectTreatmentView
    Select->>TabBar: isTabbarHidden = true (onAppear)

    User->>Select: 시술 선택 후 "다음" 탭
    alt 선택됨 (Available)
        Select->>Coordinator: push(.treatment)
        Coordinator->>Treatment: present TreatmentView
        Treatment->>TabBar: isTabbarHidden = true (onAppear)

        alt 완료(우측 버튼)
            User->>Treatment: 우측 버튼 탭
            Treatment->>Coordinator: popToRoot()
            Treatment->>TabBar: isTabbarHidden = false
        else 이전(step==1, 좌측 버튼)
            User->>Treatment: 좌측 버튼 탭
            Treatment->>Coordinator: pop()
            Treatment->>Treatment: viewModel.previous()
        end
    else 미선택 (NotSelected)
        Select->>Coordinator: push(.noTreatment)
        Coordinator->>NoT: present NoTreatmentView
        NoT->>TabBar: isTabbarHidden = true (onAppear)
    end
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Suggested reviewers

  • y-eonee
  • sum130
  • soseoyo12
🚥 Pre-merge checks | ✅ 4 | ❌ 1
❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed 제목이 변경사항의 핵심을 명확히 전달합니다. '뷰 연결 완료'는 시술(Treatment) 플로우 뷰 연결이라는 PR의 주요 목표와 일치합니다.
Description check ✅ Passed 설명이 PR의 변경사항과 관련되어 있습니다. 시술 플로우 뷰 연결 완료, ViewFactory 추가, DependencyAssembler 수정, CalendarRoute/CoordinatorView 수정 등을 언급합니다.
Linked Issues check ✅ Passed PR의 코드 변경사항은 이슈 #102의 '뷰 전체 연결' 목표를 충족합니다. 시술 플로우의 네비게이션 구조, 뷰 연결, 상태 관리 등이 모두 구현되었습니다.
Out of Scope Changes check ✅ Passed 모든 변경사항이 시술(Treatment) 뷰 연결과 관련되어 있습니다. UI 스타일 조정(간격, 여백, 조건부 렌더링)도 뷰 연결을 위한 필요한 변경입니다.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch style/#102-treatementview

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🤖 Fix all issues with AI agents
In
`@Cherrish-iOS/Cherrish-iOS/Presentation/Feature/Calendar/Treatment/View/Treatment/TreatmentView.swift`:
- Around line 19-28: The navigation logic in TreatmentView's leftButtonAction
and rightButtonAction duplicates NoTreatmentView; extract the shared behavior
into a reusable helper (e.g., a static function or a protocol + extension) that
takes the viewModel, calendarCoordinator, and tabBarCoordinator and performs the
actions, then call that helper from both TreatmentView and NoTreatmentView to
remove duplication; specifically consolidate the logic that checks
viewModel.step == 1 then calls calendarCoordinator.pop() and
viewModel.previous(), and the logic that calls calendarCoordinator.popToRoot()
and sets tabBarCoordinator.isTabbarHidden = false; also verify the intended
behavior of calling viewModel.previous() immediately after
calendarCoordinator.pop() when viewModel.step == 1 and adjust the helper to
avoid unintended state transitions if that call is incorrect.
- Line 75: The .id usage is inconsistent with NoTreatmentView; change
.id(viewModel.state) in TreatmentView.swift to .id(String(describing:
viewModel.state)) to match the rest of the codebase, or alternatively make the
TreatmentStep type explicitly Hashable and document that convention; update the
.id call to use String(describing: viewModel.state) (or add Hashable conformance
to the TreatmentStep enum/struct referenced by viewModel.state) so the usage is
consistent across both TreatmentView and NoTreatmentView.

Comment on lines +19 to +28
leftButtonAction: {
if viewModel.step == 1 {
calendarCoordinator.pop()
}
viewModel.previous()
},
rightButtonAction: {
calendarCoordinator.popToRoot()
tabBarCoordinator.isTabbarHidden = false
}
Copy link

Choose a reason for hiding this comment

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

🧹 Nitpick | 🔵 Trivial

NoTreatmentView와 동일한 네비게이션 로직 중복

leftButtonActionrightButtonAction의 로직이 NoTreatmentView.swift와 완전히 동일합니다. 두 뷰 모두 같은 네비게이션 패턴을 사용하므로, 공통 로직을 헬퍼 함수나 프로토콜 익스텐션으로 추출하는 것을 고려해 보세요.

또한 NoTreatmentView에서 언급한 것처럼, step == 1일 때 pop()previous() 호출이 의도된 것인지 확인이 필요합니다.

🤖 Prompt for AI Agents
In
`@Cherrish-iOS/Cherrish-iOS/Presentation/Feature/Calendar/Treatment/View/Treatment/TreatmentView.swift`
around lines 19 - 28, The navigation logic in TreatmentView's leftButtonAction
and rightButtonAction duplicates NoTreatmentView; extract the shared behavior
into a reusable helper (e.g., a static function or a protocol + extension) that
takes the viewModel, calendarCoordinator, and tabBarCoordinator and performs the
actions, then call that helper from both TreatmentView and NoTreatmentView to
remove duplication; specifically consolidate the logic that checks
viewModel.step == 1 then calls calendarCoordinator.pop() and
viewModel.previous(), and the logic that calls calendarCoordinator.popToRoot()
and sets tabBarCoordinator.isTabbarHidden = false; also verify the intended
behavior of calling viewModel.previous() immediately after
calendarCoordinator.pop() when viewModel.step == 1 and adjust the helper to
avoid unintended state transitions if that call is incorrect.

.padding(.leading, 34.adjustedW)
.padding(.trailing, 33.adjustedW)
.id(String(describing: viewModel.state))
.id(viewModel.state)
Copy link

Choose a reason for hiding this comment

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

🧹 Nitpick | 🔵 Trivial

.id() 사용 방식 불일치

NoTreatmentView.swift에서는 .id(String(describing: viewModel.state))를 사용하지만, 여기서는 .id(viewModel.state)를 사용합니다. TreatmentStepHashable을 준수한다면 동작은 하지만, 코드베이스 전체에서 일관된 방식을 사용하는 것이 좋습니다.

🤖 Prompt for AI Agents
In
`@Cherrish-iOS/Cherrish-iOS/Presentation/Feature/Calendar/Treatment/View/Treatment/TreatmentView.swift`
at line 75, The .id usage is inconsistent with NoTreatmentView; change
.id(viewModel.state) in TreatmentView.swift to .id(String(describing:
viewModel.state)) to match the rest of the codebase, or alternatively make the
TreatmentStep type explicitly Hashable and document that convention; update the
.id call to use String(describing: viewModel.state) (or add Hashable conformance
to the TreatmentStep enum/struct referenced by viewModel.state) so the usage is
consistent across both TreatmentView and NoTreatmentView.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
Cherrish-iOS/Cherrish-iOS/Presentation/Feature/Calendar/Treatment/View/SelectedTreatmentSheetView.swift (1)

56-88: maxVisibleCount 상수로 조건을 통일하세요.

3 하드코딩은 maxVisibleCount 변경 시 불일치 위험이 큽니다. 동일한 상수를 재사용하세요.

♻️ 제안 변경
-                        if selectedTreatments.count > 3 {
+                        if selectedTreatments.count > maxVisibleCount {
                             scrollViewTopMarkerView
                                 .allowsHitTesting(false)
                         }
@@
-                        if selectedTreatments.count > 3 {
+                        if selectedTreatments.count > maxVisibleCount {
                             scrollViewBottomMarkerView
                                 .allowsHitTesting(false)
                         }
@@
-                if selectedTreatments.count > 3 {
+                if selectedTreatments.count > maxVisibleCount {
                     GradientBox(isTop: true)
@@
-                    GradientBox(isTop: false)
+                    GradientBox(isTop: false)
                         .frame(height: 42)
                         .allowsHitTesting(false)
                         .opacity(shouldShowGradientBottom ? 1 : 0)
                         .frame(maxHeight: .infinity, alignment: .bottom)
                 }

Copy link
Contributor

@soseoyo12 soseoyo12 left a comment

Choose a reason for hiding this comment

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

수고하셨숨니당 제 뷰 연결도 해주세요 ㅠㅜ

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🤖 Fix all issues with AI agents
In
`@Cherrish-iOS/Cherrish-iOS/Presentation/Feature/Calendar/Treatment/View/NoTreatment/NoTreatmentView.swift`:
- Around line 19-29: leftButtonAction incorrectly calls viewModel.previous() and
fails to restore the tab bar when leaving from the first step; change the
leftButtonAction so that when viewModel.step == 1 it calls
calendarCoordinator.pop() and also sets tabBarCoordinator.isTabbarHidden = false
(mirroring rightButtonAction), and avoid calling viewModel.previous() in that
branch since step == 1 has no previous state; keep viewModel.previous() only for
non-first-step branches.
- Around line 55-57: The view hides the tab bar in NoTreatmentView using
.onAppear by setting tabBarCoordinator.isTabbarHidden = true but never restores
it on all exit paths; add a .onDisappear modifier on the same view to set
tabBarCoordinator.isTabbarHidden = false so the tab bar is restored when leaving
via back button, swipe-back gesture, or other system navigation (also ensure any
existing left-button actions do not conflict with this restoration logic such as
the explicit popToRoot handler).

Comment on lines +19 to +29
leftButtonAction: {
if viewModel.step == 1 {
calendarCoordinator.pop()
}
viewModel.previous()

},
rightButtonAction: {
calendarCoordinator.popToRoot()
tabBarCoordinator.isTabbarHidden = false
}
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

find . -name "AppCoordinatorProtocol.swift" -type f

Repository: TEAM-Cherrish/Cherrish-iOS

Length of output: 151


🏁 Script executed:

find . -name "NoTreatmentView.swift" -type f

Repository: TEAM-Cherrish/Cherrish-iOS

Length of output: 176


🏁 Script executed:

find . -name "*Coordinator*.swift" -type f | head -20

Repository: TEAM-Cherrish/Cherrish-iOS

Length of output: 1479


🏁 Script executed:

cat -n ./Cherrish-iOS/Cherrish-iOS/Presentation/Coordinator/AppCoordinatorProtocol.swift

Repository: TEAM-Cherrish/Cherrish-iOS

Length of output: 773


🏁 Script executed:

cat -n ./Cherrish-iOS/Cherrish-iOS/Presentation/Feature/Calendar/Treatment/View/NoTreatment/NoTreatmentView.swift

Repository: TEAM-Cherrish/Cherrish-iOS

Length of output: 7164


🏁 Script executed:

cat -n ./Cherrish-iOS/Cherrish-iOS/Presentation/Feature/Calendar/Coordinator/CalendarCoordinator.swift | head -100

Repository: TEAM-Cherrish/Cherrish-iOS

Length of output: 724


🏁 Script executed:

cat -n ./Cherrish-iOS/Cherrish-iOS/Presentation/Global/Components/CherrishTabbar/TabBarCoordinator.swift

Repository: TEAM-Cherrish/Cherrish-iOS

Length of output: 1008


첫 단계에서 뒤로가기 시 탭바 미복구 문제 해결 필요

Line 19-25의 leftButtonAction에서 viewModel.step == 1일 때 calendarCoordinator.pop()을 호출한 후 계속해서 viewModel.previous()를 실행합니다. 그러나 onAppear에서 탭바가 숨겨진(line 56) 상태이고, 첫 단계에서 이탈할 때 탭바가 복구되지 않습니다. 오른쪽 버튼의 rightButtonAction(line 28)에서는 popToRoot()tabBarCoordinator.isTabbarHidden = false로 탭바를 복구하지만, 왼쪽 버튼에서는 누락되어 있습니다. 또한 step == 1은 첫 단계이므로 이전 상태가 없어 viewModel.previous() 호출이 불필요합니다.

🔧 제안 수정안
 leftButtonAction: {
     if viewModel.step == 1 {
         calendarCoordinator.pop()
+        tabBarCoordinator.isTabbarHidden = false
+        return
     }
     viewModel.previous()
 }
🤖 Prompt for AI Agents
In
`@Cherrish-iOS/Cherrish-iOS/Presentation/Feature/Calendar/Treatment/View/NoTreatment/NoTreatmentView.swift`
around lines 19 - 29, leftButtonAction incorrectly calls viewModel.previous()
and fails to restore the tab bar when leaving from the first step; change the
leftButtonAction so that when viewModel.step == 1 it calls
calendarCoordinator.pop() and also sets tabBarCoordinator.isTabbarHidden = false
(mirroring rightButtonAction), and avoid calling viewModel.previous() in that
branch since step == 1 has no previous state; keep viewModel.previous() only for
non-first-step branches.

Copy link
Contributor

Choose a reason for hiding this comment

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

확인 한 번 해주세용~

Copy link
Contributor Author

Choose a reason for hiding this comment

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

왼쪽 버튼 같은 경우는 시술 여부 선택 -> 시술 플로우 -> 홈 흐름입니다. 그래서 시슬 풀로우에서는 다시 시술 여부 선택으로 가야 하는데 시술 여부 선택 뷰에서는 탭바가 필요하지 않습니다. 그래서 지금 래빗이 말하는 것처럼 할 경우에는 탭가 나오게 되고 시술 여부 선택에 있는.onAppear에서 다시 탭바를 지우려고 하는데 이 두 개의 호출 시점이 순서가 완벽하게 보장되지 않아서 탭바가 사라질 수도있고 다시 나타날수도 있습니다. 화면 흐름상 지금 화면에서 버튼 두 개의 제스처로만 화면을 이탈할수 있기때문에 이렇게 하였습니다. 더 좋은 방법 있으면 알려주세요!

Comment on lines +55 to +57
.onAppear {
tabBarCoordinator.isTabbarHidden = true
}
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

find . -type f -name "NoTreatmentView.swift" | head -5

Repository: TEAM-Cherrish/Cherrish-iOS

Length of output: 176


🏁 Script executed:

find . -type f -name "*Coordinator*" | grep -i tabbar | head -10

Repository: TEAM-Cherrish/Cherrish-iOS

Length of output: 269


🏁 Script executed:

find . -type f -name "*Coordinator*" | head -20

Repository: TEAM-Cherrish/Cherrish-iOS

Length of output: 1479


🏁 Script executed:

cat -n "./Cherrish-iOS/Cherrish-iOS/Presentation/Feature/Calendar/Treatment/View/NoTreatment/NoTreatmentView.swift" | head -100

Repository: TEAM-Cherrish/Cherrish-iOS

Length of output: 3746


🏁 Script executed:

cat -n "./Cherrish-iOS/Cherrish-iOS/Presentation/Global/Components/CherrishTabbar/TabBarCoordinator.swift"

Repository: TEAM-Cherrish/Cherrish-iOS

Length of output: 1008


🏁 Script executed:

rg "isTabbarHidden\s*=" -A 2 -B 2

Repository: TEAM-Cherrish/Cherrish-iOS

Length of output: 9886


탭바 복구 누락: 스와이프 백/제스처 이탈 시 탭바가 숨겨진 상태로 유지됨

Line 55-57에서 .onAppear로 탭바를 숨기지만, 우측 버튼(popToRoot)을 통한 명시적 복구만 있고 좌측 버튼 액션에서는 복구하지 않습니다. 더 중요하게는 iOS의 스와이프 백 제스처나 시스템 백 버튼으로 이 뷰를 이탈할 경우, 어떤 복구 로직도 호출되지 않아 탭바가 숨겨진 상태로 유지됩니다.

.onDisappear를 추가하여 뷰 이탈 시점에 탭바를 복구해주세요.

예시
 .onAppear {
     tabBarCoordinator.isTabbarHidden = true
 }
+.onDisappear {
+    tabBarCoordinator.isTabbarHidden = false
+}
🤖 Prompt for AI Agents
In
`@Cherrish-iOS/Cherrish-iOS/Presentation/Feature/Calendar/Treatment/View/NoTreatment/NoTreatmentView.swift`
around lines 55 - 57, The view hides the tab bar in NoTreatmentView using
.onAppear by setting tabBarCoordinator.isTabbarHidden = true but never restores
it on all exit paths; add a .onDisappear modifier on the same view to set
tabBarCoordinator.isTabbarHidden = false so the tab bar is restored when leaving
via back button, swipe-back gesture, or other system navigation (also ensure any
existing left-button actions do not conflict with this restoration logic such as
the explicit popToRoot handler).

Copy link
Contributor

Choose a reason for hiding this comment

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

요기두! 화긴~~

Copy link
Contributor

@sum130 sum130 left a comment

Choose a reason for hiding this comment

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

드디어 뷰연결!! 완만히 연결되어 넽웤까지 팟팅해보자구요~~~~ 아자스!

action: { }
action: { calendarCoordinator.push(.selectTreatment) }
)
.padding(.horizontal, 24)
Copy link
Contributor

Choose a reason for hiding this comment

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

기기대응!

Comment on lines +19 to +29
leftButtonAction: {
if viewModel.step == 1 {
calendarCoordinator.pop()
}
viewModel.previous()

},
rightButtonAction: {
calendarCoordinator.popToRoot()
tabBarCoordinator.isTabbarHidden = false
}
Copy link
Contributor

Choose a reason for hiding this comment

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

확인 한 번 해주세용~

Comment on lines +55 to +57
.onAppear {
tabBarCoordinator.isTabbarHidden = true
}
Copy link
Contributor

Choose a reason for hiding this comment

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

요기두! 화긴~~

Comment on lines 78 to 88
.frame(height: 42)
.allowsHitTesting(false)
.opacity(shouldShowGradientTop ? 1 : 0)
.frame(maxHeight: .infinity, alignment: .top)

GradientBox(isTop: false)
.frame(height: 42)
.allowsHitTesting(false)
.opacity(shouldShowGradientBottom ? 1 : 0)
.frame(maxHeight: .infinity, alignment: .bottom)
}
Copy link
Contributor

Choose a reason for hiding this comment

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

요부분 기기대응해주면 좋을듯해용

Comment on lines -54 to +75
.id(String(describing: viewModel.state))
.id(viewModel.state)
Copy link
Contributor

Choose a reason for hiding this comment

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

바꿔준 이유가 모에요?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

큰 차이가 없을 거 같아서 삭제했습니다.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
Cherrish-iOS/Cherrish-iOS/Presentation/Feature/Calendar/Treatment/View/SelectedTreatmentSheetView.swift (1)

56-88: maxVisibleCount를 사용하여 일관성 유지

Line 16에 maxVisibleCount = 3이 정의되어 있지만, 조건문에서 하드코딩된 3을 사용하고 있습니다. 향후 maxVisibleCount 값이 변경될 경우 버그가 발생할 수 있으므로 상수를 활용해 주세요.

♻️ 수정 제안
                     VStack(spacing: spacing) {
-                        if selectedTreatments.count > 3 {
+                        if selectedTreatments.count > maxVisibleCount {
                             scrollViewTopMarkerView
                                 .allowsHitTesting(false)
                         }
                         ForEach(selectedTreatments, id: \.id) { treatment in
                             TreatmentRowView(
                                 displayMode: .summary,
                                 treatmentEntity: treatment,
                                 isSelected: .constant(true),
                                 action: { removeTreatment(treatment) }
                             )
                             .frame(height: itemHeight)
                         }
-                        if selectedTreatments.count > 3 {
+                        if selectedTreatments.count > maxVisibleCount {
                             scrollViewBottomMarkerView
                                 .allowsHitTesting(false)
                         }
                     }
                     .padding(.vertical, 14.adjustedH)
                 }
-                if selectedTreatments.count > 3 {
+                if selectedTreatments.count > maxVisibleCount {
                     GradientBox(isTop: true)
♻️ Duplicate comments (1)
Cherrish-iOS/Cherrish-iOS/Presentation/Feature/Calendar/Treatment/View/SelectedTreatmentSheetView.swift (1)

40-42: 기기 대응 적용 완료

이전 리뷰 코멘트에서 요청한 기기 대응이 반영되었습니다. 다만, 작은 화면 기기에서 1.adjustedH가 1pt 미만의 값으로 계산될 경우 렌더링이 불안정할 수 있습니다. 필요 시 max(1, 1.adjustedH)를 고려해 주세요.

Copy link
Contributor

@y-eonee y-eonee left a comment

Choose a reason for hiding this comment

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

굿 나중에 날짜 텍스트필드 예외처리도 해주세용

leadingIcon: Image(.plus),
trailingIcon: nil,
action: { }
action: { calendarCoordinator.push(.selectTreatment) }
Copy link
Contributor

Choose a reason for hiding this comment

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

줄바꿈!

Comment on lines 65 to 67
.onAppear {
tabBarCoordinator.isTabbarHidden = true
}
Copy link
Contributor

Choose a reason for hiding this comment

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

코디네이터뷰에서 하는걸로 옮겨주세염

@wotjs020708 wotjs020708 merged commit 6358459 into develop Jan 20, 2026
1 check was pending
@wotjs020708 wotjs020708 deleted the style/#102-treatementview branch January 20, 2026 04:40
Kimgyuilli pushed a commit that referenced this pull request Jan 21, 2026
Kimgyuilli pushed a commit that referenced this pull request Jan 21, 2026
y-eonee pushed a commit that referenced this pull request Jan 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Style] 뷰 전체 연결

4 participants