IceCubesApp/Packages/Status/Sources/Status/History/StatusEditHistoryView.swift
Thomas Ricouard 4189a59cf6
iOS 17+ only support + migrating to Observation framework (#1571)
* Initial iOS 17 + Observable migration

* More Observation

* More observation

* Checkpoint

* Checkpoint

* Bump version to 1.8.0

* SwiftFormat

* Fix home timeline switch on login

* Fix sidebar routerPath

* Fixes on detail view

* Remove print changes

* Simply detail view

* More opt

* Migrate DisplaySettingsLocalValues

* Better post detail transition

* Status detail animation finally right

* Cleanup
2023-09-18 07:01:23 +02:00

69 lines
1.9 KiB
Swift

import DesignSystem
import Models
import Network
import SwiftUI
public struct StatusEditHistoryView: View {
@Environment(\.dismiss) private var dismiss
@Environment(Client.self) private var client
@EnvironmentObject private var theme: Theme
private let statusId: String
@State private var history: [StatusHistory]?
public init(statusId: String) {
self.statusId = statusId
}
public var body: some View {
NavigationStack {
List {
Section {
if let history {
ForEach(history) { edit in
VStack(alignment: .leading, spacing: 8) {
EmojiTextApp(edit.content, emojis: edit.emojis)
.font(.scaledBody)
.emojiSize(Font.scaledBodyFont.emojiSize)
.emojiBaselineOffset(Font.scaledBodyFont.emojiBaselineOffset)
Group {
Text(edit.createdAt.asDate, style: .date) +
Text("status.summary.at-time") +
Text(edit.createdAt.asDate, style: .time)
}
.font(.footnote)
.foregroundColor(.gray)
}
}
} else {
HStack {
Spacer()
ProgressView()
Spacer()
}
}
}.listRowBackground(theme.primaryBackgroundColor)
}
.toolbar {
ToolbarItem(placement: .navigationBarTrailing) {
Button("action.done", action: { dismiss() })
}
}
.navigationTitle("status.summary.edit-history")
.navigationBarTitleDisplayMode(.inline)
.task {
do {
history = try await client.get(endpoint: Statuses.history(id: statusId))
} catch {
print(error)
}
}
.listStyle(.plain)
.scrollContentBackground(.hidden)
.background(theme.primaryBackgroundColor)
}
}
}