secretive/Sources/Secretive/Views/Views/UpdateView.swift
Max Goedjen f76766a9d5
Updater UI (#703)
* Parse markdown oop

* Update UI.

* Tweaks.
2025-09-14 08:20:10 +00:00

53 lines
1.8 KiB
Swift

import SwiftUI
import Brief
struct UpdateDetailView: View {
@Environment(\.updater) var updater
@Environment(\.openURL) var openURL
let update: Release
var body: some View {
VStack(spacing: 0) {
HStack {
if !update.critical {
Button(.updateIgnoreButton) {
Task {
await updater.ignore(release: update)
}
}
.buttonStyle(ToolbarButtonStyle())
}
Spacer()
if updater.currentVersion.isTestBuild {
Button(.updaterDownloadLatestNightlyButton) {
openURL(URL(string: "https://github.com/maxgoedjen/secretive/actions/workflows/nightly.yml")!)
}
.buttonStyle(ToolbarButtonStyle(tint: .accentColor))
}
Button(.updateUpdateButton) {
openURL(update.html_url)
}
.buttonStyle(ToolbarButtonStyle(tint: .accentColor))
.keyboardShortcut(.defaultAction)
}
.padding()
Divider()
Form {
Section {
Text(update.attributedBody)
} header: {
Text(.updateVersionName(updateName: update.name)) .headerProminence(.increased)
}
}
.formStyle(.grouped)
}
}
}
#Preview {
UpdateDetailView(update: .init(name: "3.0.0", prerelease: false, html_url: URL(string: "https://example.com")!, body: "Hello"))
}