Skip to content

Commit cf57fa9

Browse files
authored
Merge pull request #165 from TEAM-Cherrish/fix/#164-treatmentqa2
fix/ #164 QA 수정 완료
2 parents 400496a + 5c857df commit cf57fa9

5 files changed

Lines changed: 87 additions & 22 deletions

File tree

Cherrish-iOS/Cherrish-iOS/Presentation/Feature/Calendar/SelectTreatment/SelectTreatmentView.swift

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -76,12 +76,10 @@ extension SelectTreatmentView {
7676
VStack(alignment: .leading, spacing: 0){
7777

7878
TypographyText("시술 일정을 추가해볼게요.", style: .title1_sb_18, color: .gray1000)
79-
.frame(height: 27.adjustedH)
79+
.frame(height: 30.adjustedH)
8080
TypographyText("이미 생각해둔 시술이 있나요?", style: .title1_sb_18, color: .gray1000)
81-
.frame(height: 27.adjustedH)
81+
.frame(height: 30.adjustedH)
8282

83-
84-
8583
Spacer()
8684
.frame(height: 4.adjustedH)
8785
TypographyText("시술을 선택하셨는지 확인할게요.", style: .body1_r_14, color: .gray700)

Cherrish-iOS/Cherrish-iOS/Presentation/Feature/Calendar/Treatment/View/NoTreatment/NoTreatmentFilterView.swift

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,18 @@ import SwiftUI
1010
struct NoTreatmentFilterView: View {
1111
@ObservedObject var viewModel: NoTreatmentViewModel
1212

13+
14+
private let itemHeight: CGFloat = 34.adjustedH
15+
private let spacing: CGFloat = 8.adjustedH
16+
private let maxVisibleCount = 3
17+
18+
private var scrollViewHeight: CGFloat {
19+
let count = min(viewModel.selectedTreatments.count, maxVisibleCount)
20+
let contentHeight = CGFloat(count) * itemHeight + CGFloat(max(count - 1, 0)) * spacing
21+
return contentHeight + 24.adjustedH + 40.adjustedH
22+
}
23+
24+
1325
var body: some View {
1426
VStack(spacing: 0) {
1527
TitleHeaderView(title: viewModel.selectedCategory?.title ?? "")
@@ -29,16 +41,19 @@ struct NoTreatmentFilterView: View {
2941
} else {
3042
viewModel.addTreatment(treatment)
3143

32-
}
44+
}
3345
}
3446
)
3547
.padding(.horizontal, 25.adjustedW)
3648

3749
}
3850
Spacer()
39-
.frame(height: 198.adjustedH)
51+
.frame(
52+
height: viewModel.selectedTreatments.isEmpty ?
53+
24.adjustedH : scrollViewHeight.adjustedH + 24.adjustedH
54+
)
4055
}
41-
56+
4257
}
4358
.task {
4459
await viewModel.fetchNoTreatments()
@@ -58,7 +73,7 @@ private struct TitleHeaderView: View {
5873
TypographyText("관련 시술 리스트", style: .title1_sb_18, color: .gray1000)
5974
.frame(height: 27.adjustedH)
6075
Spacer()
61-
76+
6277
}
6378

6479

@@ -93,6 +108,6 @@ private struct TitleHeaderView: View {
93108
.gray500()
94109
}
95110
.frame(height: 105.adjustedH )
96-
111+
97112
}
98113
}

Cherrish-iOS/Cherrish-iOS/Presentation/Feature/Calendar/Treatment/View/Treatment/TreatmentFilterView.swift

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,19 +9,31 @@ import SwiftUI
99

1010
struct TreatmentFilterView: View {
1111
@ObservedObject var viewModel: TreatmentViewModel
12+
13+
private let itemHeight: CGFloat = 34.adjustedH
14+
private let spacing: CGFloat = 8.adjustedH
15+
private let maxVisibleCount = 3
16+
17+
private var scrollViewHeight: CGFloat {
18+
let count = min(viewModel.selectedTreatments.count, maxVisibleCount)
19+
let contentHeight = CGFloat(count) * itemHeight + CGFloat(max(count - 1, 0)) * spacing
20+
return contentHeight + 24.adjustedH + 40.adjustedH
21+
}
22+
1223
var body: some View {
1324
VStack(spacing: 0) {
1425
TreatmentSearchBarTextField(
1526
text: $viewModel.searchText,
1627
onTap: {
1728
Task {
18-
try await viewModel.fetchTreatments()
29+
try await viewModel.fetchTreatments()
1930
}
2031
},
2132
isDisabled: false
2233
)
2334
.padding(.horizontal, 25.adjustedW)
24-
.padding(.bottom, 8.adjustedH)
35+
Spacer()
36+
.frame(height: 8.adjustedH)
2537
ScrollView(.vertical, showsIndicators: false) {
2638
HStack(alignment: .top,spacing: 4) {
2739
TypographyText("", style: .body3_r_12, color: .gray600)
@@ -33,14 +45,15 @@ struct TreatmentFilterView: View {
3345
color: .gray600
3446
)
3547
.lineLimit(2)
36-
3748
}
38-
3949
Spacer()
40-
4150
}
4251
.frame(height: 34.adjustedH)
4352
.padding(.horizontal, 25.adjustedW)
53+
54+
Spacer()
55+
.frame(height: 20.adjustedH)
56+
4457
if viewModel.treatments.isEmpty {
4558
Spacer()
4659
.frame(height: 148.adjustedH)
@@ -62,7 +75,10 @@ struct TreatmentFilterView: View {
6275
.padding(.horizontal, 24.adjustedW)
6376
}
6477
Spacer()
65-
.frame(height: 198.adjustedH)
78+
.frame(
79+
height: viewModel.selectedTreatments.isEmpty ?
80+
24.adjustedH : scrollViewHeight.adjustedH + 24.adjustedH
81+
)
6682
}
6783

6884
}
@@ -71,7 +87,7 @@ struct TreatmentFilterView: View {
7187
try await viewModel.fetchTreatments()
7288
}
7389
}
74-
90+
7591
}
7692
}
7793

Cherrish-iOS/Cherrish-iOS/Presentation/Feature/Calendar/Treatment/ViewModel/NoTreatment/NoTreatmentViewModel.swift

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,10 @@ final class NoTreatmentViewModel: ObservableObject{
113113
}
114114

115115
func isDateTextFieldNotEmpty() -> Bool {
116+
guard let scheduledDate = calendarTreatmentFlowState.selectedDate else {
117+
return false
118+
}
119+
116120
guard !year.isEmpty, !month.isEmpty, !day.isEmpty else {
117121
Task { @MainActor in
118122
updateWarning(state: .none)
@@ -133,14 +137,28 @@ final class NoTreatmentViewModel: ObservableObject{
133137
return false
134138
}
135139

140+
136141
let today = Calendar.current.startOfDay(for: Date())
142+
137143
if date < today {
138-
updateWarning(state: .pastDate)
139-
return false
144+
if date < scheduledDate {
145+
updateWarning(state: .pastDate)
146+
return false
147+
}
148+
149+
} else {
150+
if date < scheduledDate {
151+
if date < today {
152+
updateWarning(state: .pastDate)
153+
}
154+
updateWarning(state: .beforeProcedureDate)
155+
return false
156+
}
140157
}
141-
158+
142159
updateWarning(state: .none)
143160
return true
161+
144162
}
145163

146164

Cherrish-iOS/Cherrish-iOS/Presentation/Feature/Calendar/Treatment/ViewModel/Treatment/TreatmentViewModel.swift

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,10 @@ final class TreatmentViewModel: ObservableObject{
104104
}
105105

106106
func isDateTextFieldNotEmpty() -> Bool {
107+
guard let scheduledDate = calendarTreatmentFlowState.selectedDate else {
108+
return false
109+
}
110+
107111
guard !year.isEmpty, !month.isEmpty, !day.isEmpty else {
108112
Task { @MainActor in
109113
updateWarning(state: .none)
@@ -124,14 +128,28 @@ final class TreatmentViewModel: ObservableObject{
124128
return false
125129
}
126130

131+
127132
let today = Calendar.current.startOfDay(for: Date())
133+
128134
if date < today {
129-
updateWarning(state: .pastDate)
130-
return false
135+
if date < scheduledDate {
136+
updateWarning(state: .pastDate)
137+
return false
138+
}
139+
140+
} else {
141+
if date < scheduledDate {
142+
if date < today {
143+
updateWarning(state: .pastDate)
144+
}
145+
updateWarning(state: .beforeProcedureDate)
146+
return false
147+
}
131148
}
132-
149+
133150
updateWarning(state: .none)
134151
return true
152+
135153
}
136154

137155

0 commit comments

Comments
 (0)