Skip to content

Commit 7662cb1

Browse files
authored
Merge pull request #36 from aapis/bugfix/record-filter
Fixed record grouping and sorting issue
2 parents dbf7b22 + 5461c4c commit 7662cb1

File tree

1 file changed

+19
-10
lines changed

1 file changed

+19
-10
lines changed

KlockWork-iOS/KlockWork-iOS/Entities/Filter/RecordFilter.swift

+19-10
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,19 @@ struct RecordsGroupedByDate: Identifiable {
1313
var records: [LogRecord]
1414
}
1515

16+
struct GroupedRecordDateRow: View {
17+
public let date: Date
18+
19+
var body: some View {
20+
HStack(alignment: .center, spacing: 5) {
21+
Image(systemName: "calendar")
22+
Text(date.formatted(date: .abbreviated, time: .omitted))
23+
Spacer()
24+
}
25+
.padding(8)
26+
}
27+
}
28+
1629
struct RecordFilter: View {
1730
typealias Button = Tabs.Content.Individual.SingleRecord
1831
public let job: Job
@@ -25,14 +38,9 @@ struct RecordFilter: View {
2538
ScrollView(showsIndicators: false) {
2639
ForEach(groupedRecords) { group in
2740
VStack(alignment: .leading, spacing: 1) {
28-
HStack(alignment: .center, spacing: 5) {
29-
Image(systemName: "calendar")
30-
Text(group.date.formatted(date: .abbreviated, time: .omitted))
31-
Spacer()
32-
}
33-
.padding(8)
41+
GroupedRecordDateRow(date: group.date)
3442

35-
ForEach(records) { record in
43+
ForEach(group.records) { record in
3644
Button(record: record)
3745
}
3846
}
@@ -61,13 +69,14 @@ extension RecordFilter {
6169
private func actionOnAppear() -> Void {
6270
self.groupedRecords = []
6371
if self.records.count > 0 {
64-
let grouped = Array(self.records)
72+
let sortedRecords = Array(self.records)
6573
.sliced(by: [.year, .month, .day], for: \.timestamp!)
66-
.sorted(by: {$0.key > $1.key})
74+
.sorted(by: {$0.key < $1.key})
75+
let grouped = Dictionary(grouping: sortedRecords, by: {$0.key})
6776

6877
for group in grouped {
6978
self.groupedRecords.append(
70-
RecordsGroupedByDate(date: group.key, records: group.value)
79+
RecordsGroupedByDate(date: group.key, records: group.value.first?.value ?? [])
7180
)
7281
}
7382
}

0 commit comments

Comments
 (0)