Skip to content

Commit 6d539e6

Browse files
committed
Move pair filtering to be passed through environment
1 parent 91f63d4 commit 6d539e6

14 files changed

Lines changed: 41 additions & 70 deletions

Modules/Sources/ScheduleFeature/ContiniousSchedule/ContiniousScheduleFeature+Loading.swift

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,16 +39,13 @@ extension ContinuousScheduleFeature.State {
3939
scheduleList.loading = (days.count < count) ? .finished : .loadMore
4040

4141
self.offset = days.last?.date
42-
var newDays = days.map { element in
42+
let newDays = days.map { element in
4343
DaySectionFeature.State(
4444
element: element,
4545
pairRowDetails: pairRowDetails
4646
)
4747
}
4848

49-
// Make sure newly aded sections has pairs filtered out by subgroup
50-
newDays.filter(keepingSubgroup: keepingSubgroup)
51-
5249
scheduleList.days.append(contentsOf: newDays)
5350
}
5451
}

Modules/Sources/ScheduleFeature/ContiniousSchedule/ContiniousScheduleFeature.swift

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,6 @@ public struct ContinuousScheduleFeature {
1717
var weekSchedule: WeekSchedule?
1818
var pairRowDetails: PairRowDetails?
1919

20-
// Keep track of currently applied subgroup filter
21-
// to make sure we'll keep filtering newly added pairs to the list
22-
var keepingSubgroup: Int?
23-
24-
mutating func filter(keepingSubgroup subgroup: Int?) {
25-
keepingSubgroup = subgroup
26-
scheduleList.filter(keepingSubgroup: subgroup)
27-
}
28-
2920
init(
3021
schedule: DaySchedule,
3122
startDate: Date?,

Modules/Sources/ScheduleFeature/DaySchedule/DayScheduleFeature.swift

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,6 @@ public struct DayScheduleFeature {
1010
public struct State {
1111
var scheduleList: ScheduleListFeature.State
1212

13-
mutating func filter(keepingSubgroup subgroup: Int?) {
14-
scheduleList.filter(keepingSubgroup: subgroup)
15-
}
16-
1713
init(schedule: DaySchedule, startDate: Date?, endDate: Date?) {
1814
@Dependency(\.calendar) var calendar
1915
@Dependency(\.date.now) var now

Modules/Sources/ScheduleFeature/ExamsSchedule/ExamsScheduleFeature.swift

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,6 @@ public struct ExamsScheduleFeature {
1212
var scheduleList: ScheduleListFeature.State
1313
var pairRowDetails: PairRowDetails?
1414

15-
mutating func filter(keepingSubgroup subgroup: Int?) {
16-
scheduleList.filter(keepingSubgroup: subgroup)
17-
}
18-
1915
init(exams: [Pair], startDate: Date?, endDate: Date?, pairRowDetails: PairRowDetails?) {
2016
self.pairRowDetails = pairRowDetails
2117

Modules/Sources/ScheduleFeature/Schedule/Day/DaySectionFeature+Filter.swift

Lines changed: 0 additions & 17 deletions
This file was deleted.

Modules/Sources/ScheduleFeature/Schedule/Day/DaySectionFeature.swift

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@ public struct DaySectionFeature {
3535
var subtitle: String? = nil
3636
var relativity: Relativity = .future
3737
var pairRows: IdentifiedArrayOf<PairRowFeature.State>
38-
var keepingSubgroup: Int?
3938

4039
init(
4140
dayDate: DayDate,
@@ -87,7 +86,6 @@ public struct DaySectionFeature {
8786
state.subtitle = date.flatMap { Self.relativeFormatter.relativeName(for: $0, now: now) }
8887
state.relativity = date.map { State.Relativity(for: $0, now: now, calendar: calendar) } ?? .future
8988
}
90-
state.filter(keepingSubgroup: state.keepingSubgroup)
9189
return .none
9290
case .pairRows:
9391
return .none

Modules/Sources/ScheduleFeature/Schedule/Day/DaySectionView.swift

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@ struct DaySectionView: View {
1515
),
1616
content: { PairRowView(store: $0) }
1717
)
18+
.transformEnvironment(\.pairFilteringMode) { mode in
19+
if store.relativity == .past { mode = .filter }
20+
}
1821
} header:{
1922
ScheduleDateTitle(
2023
date: store.title,

Modules/Sources/ScheduleFeature/Schedule/List/ScheduleListFeature+Filter.swift

Lines changed: 0 additions & 15 deletions
This file was deleted.

Modules/Sources/ScheduleFeature/Schedule/LoadedScheduleReducer+Filter.swift

Lines changed: 0 additions & 9 deletions
This file was deleted.

Modules/Sources/ScheduleFeature/Schedule/LoadedScheduleReducer.swift

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -74,8 +74,6 @@ public struct LoadedScheduleReducer {
7474
// Switch to exams if no regular schedule available
7575
scheduleType = .exams
7676
}
77-
78-
filter(keepingSubgroup: subgroupPicker?.selected)
7977
}
8078
}
8179

@@ -106,8 +104,7 @@ public struct LoadedScheduleReducer {
106104
}
107105
.onChange(of: \.subgroupPicker?.selected) { _, newValue in
108106
Reduce { state, _ in
109-
state.filter(keepingSubgroup: newValue)
110-
return .run { [source = state.source] _ in
107+
.run { [source = state.source] _ in
111108
subgroupFilterService.preferredSubgroup(source).value = newValue
112109
}
113110
}

0 commit comments

Comments
 (0)