git.iko.soy/parseable-macos
on master help sign in
Add About screen with link to GitHub repo (#37)

Adds a custom About window accessible from the standard macOS "About Parseable Viewer" menu item. The window shows the app icon, version, a brief description, and links to the GitHub repository and parseable.com. https://claude.ai/code/session_01DgADSof7QDEeQ8VJnSMwz4 Co-authored-by: Claude <noreply@anthropic.com>

commit2bd4bbaf1b9eff878aa162d6b8ebaa81c35f672c authoriko <mail@iko.soy> dateMon 16 Feb 2026, 01:27 (8 months ago) parent3bebfa3
2 files changed+56
ParseableViewer/App/ParseableViewerApp.swift+20 ParseableViewer/Views/AboutView.swift+36
ParseableViewer/App/ParseableViewerApp.swift+20
@@ -13,6 +13,10 @@ struct ParseableViewerApp: App {
1313 .windowStyle(.titleBar)
1414 .defaultSize(width: 1200, height: 800)
1515 .commands {
16+ CommandGroup(replacing: .appInfo) {
17+ AboutCommand()
18+ }
19+
1620 CommandGroup(after: .newItem) {
1721 Button("New Connection...") {
1822 appState.editingConnection = nil
@@ -47,9 +51,25 @@ struct ParseableViewerApp: App {
4751 }
4852 }
4953
54+ Window("About Parseable Viewer", id: "about") {
55+ AboutView()
56+ }
57+ .windowStyle(.hiddenTitleBar)
58+ .windowResizability(.contentSize)
59+
5060 Settings {
5161 SettingsView()
5262 .environment(appState)
5363 }
5464 }
5565}
66+
67+private struct AboutCommand: View {
68+ @Environment(\.openWindow) private var openWindow
69+
70+ var body: some View {
71+ Button("About Parseable Viewer") {
72+ openWindow(id: "about")
73+ }
74+ }
75+}
ParseableViewer/Views/AboutView.swiftnew file+36
@@ -0,0 +1,36 @@
1+import SwiftUI
2+
3+struct AboutView: View {
4+ private let appVersion = Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String ?? "–"
5+ private let buildNumber = Bundle.main.infoDictionary?["CFBundleVersion"] as? String ?? "–"
6+ private let repoURL = URL(string: "https://github.com/ilyakooo0/parseable-macos")!
7+ private let parseableURL = URL(string: "https://www.parseable.com")!
8+
9+ var body: some View {
10+ VStack(spacing: 16) {
11+ Image(nsImage: NSApp.applicationIconImage)
12+ .resizable()
13+ .frame(width: 96, height: 96)
14+
15+ Text("Parseable Viewer")
16+ .font(.title)
17+ .fontWeight(.bold)
18+
19+ Text("Version \(appVersion) (\(buildNumber))")
20+ .font(.callout)
21+ .foregroundStyle(.secondary)
22+
23+ Text("A native macOS log viewer for Parseable.")
24+ .font(.body)
25+ .multilineTextAlignment(.center)
26+
27+ HStack(spacing: 16) {
28+ Link("GitHub", destination: repoURL)
29+ Link("parseable.com", destination: parseableURL)
30+ }
31+ .font(.callout)
32+ }
33+ .padding(32)
34+ .frame(width: 320)
35+ }
36+}