Skip to content

Commit fe8391d

Browse files
authored
Fix: do not show categoryPre2025 before 2025 (#332)
* Fix: do not show `categoryPre2025` before 2025 * Apply SwiftFormat changes --------- Co-authored-by: peng-u-0807 <peng-u-0807@users.noreply.github.com>
1 parent 5bf628f commit fe8391d

File tree

6 files changed

+35
-23
lines changed

6 files changed

+35
-23
lines changed

SNUTT-2022/SNUTT/Services/SearchService.swift

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,9 +55,6 @@ struct SearchService: SearchServiceProtocol {
5555

5656
func fetchTags(quarter: Quarter) async throws {
5757
// TODO: get from userDefault
58-
if let _ = searchState.searchTagList {
59-
return
60-
}
6158
let dto = try await searchRepository.fetchTags(quarter: quarter)
6259
let model = SearchTagList(from: dto)
6360
appState.search.searchTagList = model

SNUTT-2022/SNUTT/ViewModels/SearchLectureSceneViewModel.swift

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,10 @@ class SearchLectureSceneViewModel: BaseViewModel, ObservableObject {
3434
set { services.searchService.setSearchDisplayMode(newValue) }
3535
}
3636

37+
var currentTimetable: Timetable? {
38+
appState.timetable.current
39+
}
40+
3741
override init(container: DIContainer) {
3842
super.init(container: container)
3943

@@ -62,10 +66,7 @@ class SearchLectureSceneViewModel: BaseViewModel, ObservableObject {
6266
}
6367

6468
func fetchTags() async {
65-
if appState.search.searchTagList != nil {
66-
return
67-
}
68-
guard let currentTimetable = appState.timetable.current else { return }
69+
guard let currentTimetable = currentTimetable else { return }
6970
do {
7071
try await services.searchService.fetchTags(quarter: currentTimetable.quarter)
7172
} catch {

SNUTT-2022/SNUTT/Views/Components/FilterSheetContent.swift

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -25,18 +25,25 @@ struct FilterSheetContent: View {
2525
HStack(spacing: 0) {
2626
VStack(spacing: 25) {
2727
ForEach(SearchTagType.allCases, id: \.self) { tag in
28-
let isSelected = selectedCategory == tag
29-
Button {
30-
selectedCategory = tag
31-
} label: {
32-
Spacer()
33-
Text(tag.typeStr)
34-
.frame(maxWidth: .infinity, alignment: .leading)
35-
.contentShape(Rectangle())
36-
.font(.system(size: 18, weight: .semibold))
37-
.foregroundColor(isSelected ? Color(uiColor: .label) : Color(uiColor: .label.withAlphaComponent(0.5)))
28+
// ~2024년: `구) 교양영역` 제공X
29+
if tag == .categoryPre2025,
30+
let currentYear = viewModel.currentTimetable?.year, currentYear < 2025
31+
{
32+
EmptyView()
33+
} else {
34+
let isSelected = selectedCategory == tag
35+
Button {
36+
selectedCategory = tag
37+
} label: {
38+
Spacer()
39+
Text(tag.typeStr)
40+
.frame(maxWidth: .infinity, alignment: .leading)
41+
.contentShape(Rectangle())
42+
.font(.system(size: 18, weight: .semibold))
43+
.foregroundColor(isSelected ? Color(uiColor: .label) : Color(uiColor: .label.withAlphaComponent(0.5)))
44+
}
45+
.buttonStyle(.plain)
3846
}
39-
.buttonStyle(.plain)
4047
}
4148
}
4249
.frame(maxWidth: 110, maxHeight: .infinity, alignment: .topLeading)

SNUTT-2022/SNUTT/Views/Scenes/FilterSheetScene.swift

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,13 @@ import SwiftUI
1010
struct FilterSheetScene: View {
1111
@ObservedObject var viewModel: FilterSheetViewModel
1212

13+
var currentYear: Int {
14+
viewModel.currentTimetable?.year ?? 0
15+
}
16+
1317
var body: some View {
1418
Sheet(isOpen: $viewModel.isFilterOpen,
15-
orientation: .bottom(maxHeight: 500),
19+
orientation: .bottom(maxHeight: currentYear < 2025 ? 450 : 500),
1620
sheetOpacity: 1)
1721
{
1822
VStack {

SNUTT-2022/SNUTT/Views/Scenes/LectureDetailScene.swift

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -337,9 +337,12 @@ struct LectureDetailScene: View {
337337
DetailLabel(text: "교양영역")
338338
EditableTextField(text: $lecture.category)
339339
}
340-
HStack {
341-
DetailLabel(text: "구) 교양영역")
342-
EditableTextField(text: $lecture.categoryPre2025)
340+
// 2025년~: `구) 교양영역` 제공
341+
if let currentYear = viewModel.currentTimetable?.year, currentYear >= 2025 {
342+
HStack {
343+
DetailLabel(text: "구) 교양영역")
344+
EditableTextField(text: $lecture.categoryPre2025)
345+
}
343346
}
344347
HStack {
345348
DetailLabel(text: "강좌번호")

SNUTT-2022/SNUTT/Views/Scenes/SearchLectureScene.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ struct SearchLectureScene: View {
4040
.focused($isSearchBarFocused)
4141
.frame(height: Design.searchBarHeight)
4242
}
43-
.task {
43+
.task(id: viewModel.currentTimetable?.year) {
4444
await viewModel.fetchTags()
4545
}
4646
.navigationBarHidden(true)

0 commit comments

Comments
 (0)