mirror of
https://github.com/Dimillian/IceCubesApp.git
synced 2024-11-26 18:21:00 +00:00
Fixes & optimizations
This commit is contained in:
parent
232e031559
commit
8d7b6f382e
3 changed files with 21 additions and 22 deletions
|
@ -3,15 +3,17 @@ import Charts
|
||||||
import Models
|
import Models
|
||||||
|
|
||||||
public struct TagChartView: View {
|
public struct TagChartView: View {
|
||||||
let tag: Tag
|
@State private var sortedHistory: [Tag.History] = []
|
||||||
|
|
||||||
public init(tag: Tag) {
|
public init(tag: Tag) {
|
||||||
self.tag = tag
|
_sortedHistory = .init(initialValue: tag.history.sorted {
|
||||||
|
Int($0.day) ?? 0 < Int($1.day) ?? 0
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
public var body: some View {
|
public var body: some View {
|
||||||
Chart(tag.sortedHistory) { data in
|
Chart(sortedHistory) { data in
|
||||||
AreaMark(x: .value("day", tag.sortedHistory.firstIndex(where: { $0.id == data.id }) ?? 0),
|
AreaMark(x: .value("day", sortedHistory.firstIndex(where: { $0.id == data.id }) ?? 0),
|
||||||
y: .value("uses", Int(data.uses) ?? 0))
|
y: .value("uses", Int(data.uses) ?? 0))
|
||||||
.interpolationMethod(.catmullRom)
|
.interpolationMethod(.catmullRom)
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,11 +27,6 @@ public struct Tag: Codable, Identifiable, Equatable, Hashable {
|
||||||
public let following: Bool
|
public let following: Bool
|
||||||
public let history: [History]
|
public let history: [History]
|
||||||
|
|
||||||
public var sortedHistory: [History] {
|
|
||||||
history.sorted {
|
|
||||||
Int($0.day) ?? 0 < Int($1.day) ?? 0
|
|
||||||
}
|
|
||||||
}
|
|
||||||
public var totalUses: Int {
|
public var totalUses: Int {
|
||||||
history.compactMap { Int($0.uses) }.reduce(0, +)
|
history.compactMap { Int($0.uses) }.reduce(0, +)
|
||||||
}
|
}
|
||||||
|
|
|
@ -273,6 +273,7 @@ public struct TimelineView: View {
|
||||||
ToolbarItem(placement: .topBarTrailing) {
|
ToolbarItem(placement: .topBarTrailing) {
|
||||||
switch timeline {
|
switch timeline {
|
||||||
case let .hashtag(tag, _):
|
case let .hashtag(tag, _):
|
||||||
|
if !tagGroups.isEmpty {
|
||||||
Menu {
|
Menu {
|
||||||
Section("tag-groups.edit.section.title") {
|
Section("tag-groups.edit.section.title") {
|
||||||
ForEach(tagGroups) { group in
|
ForEach(tagGroups) { group in
|
||||||
|
@ -291,6 +292,7 @@ public struct TimelineView: View {
|
||||||
} label: {
|
} label: {
|
||||||
Image(systemName: "ellipsis")
|
Image(systemName: "ellipsis")
|
||||||
}
|
}
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
EmptyView()
|
EmptyView()
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue