Skip to content

Commit be6abeb

Browse files
authored
[#164] 스티키 헤더에서 UI가 변경될 때 사각형 모양의 배경이 생기는 현상을 해결한다 (#168)
* fix: 주 버그 픽스 및 메뉴로 선택하는 것은 chevron.down 추가 * chore: adaptiveButtonStyle 위치 이동 * ui: 필터가 선택되었을 때 흰색 텍스트로 반영하기 * ui: chevron.down 제거 * ui: 텍스트 색 수정
1 parent e77e6bf commit be6abeb

5 files changed

Lines changed: 28 additions & 22 deletions

File tree

DevLog/Resource/Localizable.xcstrings

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -359,7 +359,7 @@
359359
"완료 상태" : {
360360

361361
},
362-
"완료 시점" : {
362+
"완료일" : {
363363

364364
},
365365
"읽지 않음" : {

DevLog/UI/Common/TodoInfoSheetView.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,10 @@ struct TodoInfoSheetView: View {
2424
.foregroundStyle(.white)
2525
HStack(spacing: 8) {
2626
Image(systemName: "calendar")
27-
.foregroundStyle(.white)
2827
Text(createdAt.formatted(date: .abbreviated, time: .omitted))
2928
Spacer()
3029
}
30+
.foregroundStyle(.white)
3131
.padding(.vertical, 10)
3232
.padding(.horizontal, 12)
3333
.background(

DevLog/UI/Home/TodoEditorView.swift

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -138,8 +138,8 @@ struct TodoEditorView: View {
138138
Image(systemName: "tag")
139139
.foregroundStyle(.gray)
140140
}
141+
.adaptiveButtonStyle()
141142
}
142-
.adaptiveButtonStyle()
143143
DueDatePicker(selection: Binding(
144144
get: { viewModel.state.dueDate ?? Date() },
145145
set: { viewModel.send(.setDueDate($0)) }
@@ -161,8 +161,8 @@ struct TodoEditorView: View {
161161
viewModel.send(.setDueDate(viewModel.state.hasDueDate ? nil : Date()))
162162
}
163163
}
164+
.adaptiveButtonStyle()
164165
}
165-
.adaptiveButtonStyle()
166166
}
167167
}
168168

@@ -317,11 +317,11 @@ private struct TagEditor<Content: View>: View {
317317
Image(systemName: "plus")
318318
.font(.largeTitle)
319319
.foregroundStyle(Color.white)
320+
.adaptiveButtonStyle(
321+
shape: .circle,
322+
color: (!tag.isEmpty && !tags.contains(tag)) ? Color.blue : .gray.opacity(0.4)
323+
)
320324
}
321-
.adaptiveButtonStyle(
322-
shape: .circle,
323-
color: (!tag.isEmpty && !tags.contains(tag)) ? Color.blue : .gray.opacity(0.4)
324-
)
325325
.disabled(tag.isEmpty || tags.contains(tag))
326326
}
327327
}

DevLog/UI/Home/TodoListView.swift

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -207,14 +207,13 @@ struct TodoListView: View {
207207
Text("정렬 순서")
208208
}
209209
} label: {
210+
let condition = viewModel.state.query.sortTarget == .createdAt && viewModel.state.query.sortOrder == .latest
210211
HStack {
211212
Text("정렬: \(viewModel.state.query.sortTarget.title) / \(viewModel.state.query.sortOrder.title)")
212213
Image(systemName: "chevron.down")
213214
}
214-
.adaptiveButtonStyle(
215-
color: viewModel.state.query.sortTarget == .createdAt &&
216-
viewModel.state.query.sortOrder == .latest ? .clear : .blue
217-
)
215+
.foregroundStyle(condition ? Color(.label) : .white)
216+
.adaptiveButtonStyle(color: condition ? .clear : .blue)
218217
}
219218
}
220219

@@ -244,14 +243,13 @@ struct TodoListView: View {
244243
Text("완료 상태")
245244
}
246245
} label: {
246+
let condition = viewModel.state.query.isPinned == true || viewModel.state.query.completionFilter != .all
247247
HStack {
248248
Text("필터 옵션")
249249
Image(systemName: "chevron.down")
250250
}
251-
.adaptiveButtonStyle(
252-
color: viewModel.state.query.isPinned == true ||
253-
viewModel.state.query.completionFilter != .all ? .blue : .clear
254-
)
251+
.foregroundStyle(condition ? .white : Color(.label))
252+
.adaptiveButtonStyle(color: condition ? .blue : .clear)
255253
}
256254
}
257255

DevLog/UI/PushNotification/PushNotificationListView.swift

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -114,16 +114,18 @@ struct PushNotificationListView: View {
114114
Image(systemName: "line.3.horizontal.decrease")
115115
filterBadge
116116
}
117+
.adaptiveButtonStyle()
117118
}
118-
.adaptiveButtonStyle()
119119
}
120120

121121
Button {
122122
viewModel.send(.toggleSortOption)
123123
} label: {
124+
let condition = viewModel.state.query.sortOrder == .oldest
124125
Text("정렬: \(viewModel.state.query.sortOrder.title)")
126+
.foregroundStyle(condition ? .white : Color(.label))
127+
.adaptiveButtonStyle(color: condition ? .blue : .clear)
125128
}
126-
.adaptiveButtonStyle(color: viewModel.state.query.sortOrder == .oldest ? .blue : .clear)
127129

128130
Menu {
129131
ForEach(PushNotificationQuery.TimeFilter.availableOptions, id: \.id) { option in
@@ -142,17 +144,23 @@ struct PushNotificationListView: View {
142144
}
143145
}
144146
} label: {
145-
Text("기간")
147+
let condition = viewModel.state.query.timeFilter == .none
148+
HStack {
149+
Text("기간")
150+
Image(systemName: "chevron.down")
151+
}
152+
.foregroundStyle(condition ? Color(.label) : .white)
153+
.adaptiveButtonStyle(color: condition ? .clear : .blue)
146154
}
147-
.adaptiveButtonStyle(color: viewModel.state.query.timeFilter == .none ? .clear : .blue)
148155

149156
Button {
150157
viewModel.send(.toggleUnreadOnly)
151158
} label: {
159+
let condition = viewModel.state.query.unreadOnly
152160
Text("읽지 않음")
153-
.foregroundStyle(viewModel.state.query.unreadOnly ? .white : Color(.label))
161+
.foregroundStyle(condition ? .white : Color(.label))
162+
.adaptiveButtonStyle(color: condition ? .blue : .clear)
154163
}
155-
.adaptiveButtonStyle(color: viewModel.state.query.unreadOnly ? .blue : .clear)
156164
}
157165
}
158166
.scrollIndicators(.never)

0 commit comments

Comments
 (0)