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
|
|
|
|
2023-09-18 05:01:23 +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) {
|
2023-01-20 17:27:00 +00:00
|
|
|
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() })
|
|
|
|
}
|
|
|
|
}
|
2023-03-25 16:16:22 +00:00
|
|
|
.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)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|