- Add ArtefactFiles.appInfo() build date from executable mtime. - Add AboutView with version, build, build date, and close button. - Add HelpOverlay view modifier for non-reflowing help badges. - Wire About as a sheet and help toggle in SidebarView/RootView. - Add AboutHelpUITests coverage. Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
63 lines
1.9 KiB
Swift
63 lines
1.9 KiB
Swift
import SwiftUI
|
|
import ICCeryCore
|
|
|
|
/// About dialog for ICCery (issue #31, docs/21 §Modals).
|
|
struct AboutView: View {
|
|
let onClose: () -> Void
|
|
|
|
private let info = ArtefactFiles.appInfo()
|
|
|
|
var body: some View {
|
|
VStack(spacing: 20) {
|
|
Image("ICCery-logo")
|
|
.resizable()
|
|
.scaledToFit()
|
|
.frame(height: 64)
|
|
|
|
Text("ICCery")
|
|
.font(.title)
|
|
.foregroundStyle(Theme.text)
|
|
|
|
VStack(alignment: .leading, spacing: 4) {
|
|
HStack {
|
|
Text("Version:")
|
|
.foregroundStyle(.secondary)
|
|
Text(info.version)
|
|
.foregroundStyle(Theme.text)
|
|
.accessibilityIdentifier("aboutVersion")
|
|
}
|
|
HStack {
|
|
Text("Build:")
|
|
.foregroundStyle(.secondary)
|
|
Text(info.build)
|
|
.foregroundStyle(Theme.text)
|
|
}
|
|
HStack {
|
|
Text("Build date:")
|
|
.foregroundStyle(.secondary)
|
|
Text(info.buildDate)
|
|
.foregroundStyle(Theme.text)
|
|
.accessibilityIdentifier("aboutBuildDate")
|
|
}
|
|
}
|
|
.font(.callout)
|
|
|
|
Text("Native macOS printer profiling workstation.")
|
|
.font(.caption)
|
|
.foregroundStyle(.secondary)
|
|
.multilineTextAlignment(.center)
|
|
|
|
Button("Close") {
|
|
onClose()
|
|
}
|
|
.controlSize(.large)
|
|
.keyboardShortcut(.cancelAction)
|
|
.accessibilityIdentifier("closeAboutBtn")
|
|
}
|
|
.padding(32)
|
|
.frame(width: 360)
|
|
.background(Theme.panel)
|
|
.accessibilityIdentifier("aboutDialog")
|
|
}
|
|
}
|