IceCubesApp/Packages/StatusKit/Sources/StatusKit/History/StatusEditHistoryView.swift

67 lines
1.9 KiB
Swift
Raw Normal View History

2023-01-22 05:38:30 +00:00
import DesignSystem
2023-01-19 20:19:19 +00:00
import Models
import Network
2023-01-22 05:38:30 +00:00
import SwiftUI
2023-01-19 20:19:19 +00:00
public struct StatusEditHistoryView: View {
@Environment(\.dismiss) private var dismiss
2023-01-22 05:38:30 +00:00
@Environment(Client.self) private var client
2023-09-18 19:03:52 +00:00
@Environment(Theme.self) private var theme
2023-01-22 05:38:30 +00:00
2023-01-19 20:19:19 +00:00
private let statusId: String
2023-01-22 05:38:30 +00:00
2023-01-19 20:19:19 +00:00
@State private var history: [StatusHistory]?
2023-01-22 05:38:30 +00:00
2023-01-19 20:19:19 +00:00
public init(statusId: String) {
self.statusId = statusId
}
2023-01-22 05:38:30 +00:00
2023-01-19 20:19:19 +00:00
public var body: some View {
NavigationStack {
List {
Section {
if let history {
ForEach(history) { edit in
2023-01-22 05:38:30 +00:00
VStack(alignment: .leading, spacing: 8) {
EmojiTextApp(edit.content, emojis: edit.emojis)
2023-01-19 20:19:19 +00:00
.font(.scaledBody)
2024-02-05 07:55:24 +00:00
.emojiText.size(Font.scaledBodyFont.emojiSize)
.emojiText.baselineOffset(Font.scaledBodyFont.emojiBaselineOffset)
2023-01-19 20:19:19 +00:00
Group {
Text(edit.createdAt.asDate, style: .date) +
2023-01-22 05:38:30 +00:00
Text("status.summary.at-time") +
Text(edit.createdAt.asDate, style: .time)
2023-01-19 20:19:19 +00:00
}
.font(.footnote)
2023-12-04 14:49:44 +00:00
.foregroundStyle(.secondary)
2023-01-19 20:19:19 +00:00
}
}
} else {
HStack {
Spacer()
ProgressView()
Spacer()
}
}
}.listRowBackground(theme.primaryBackgroundColor)
}
.toolbar {
ToolbarItem(placement: .navigationBarTrailing) {
Button("action.done", action: { dismiss() })
}
}
.navigationTitle("status.summary.edit-history")
2023-01-19 20:19:19 +00:00
.navigationBarTitleDisplayMode(.inline)
.task {
do {
history = try await client.get(endpoint: Statuses.history(id: statusId))
2024-02-14 11:48:14 +00:00
} catch {}
2023-01-19 20:19:19 +00:00
}
.listStyle(.plain)
.scrollContentBackground(.hidden)
.background(theme.primaryBackgroundColor)
}
}
}