From b29f261dc89b6c9ed1b37d700ec3f815dcf00462 Mon Sep 17 00:00:00 2001 From: Louis Qian Date: Mon, 30 Mar 2026 18:44:49 -0700 Subject: [PATCH] chore: clean up versionConfig to be init-able --- macos/Sources/Features/About/AboutView.swift | 26 +++++++++++--------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/macos/Sources/Features/About/AboutView.swift b/macos/Sources/Features/About/AboutView.swift index a7dfd7711..49958d9fa 100644 --- a/macos/Sources/Features/About/AboutView.swift +++ b/macos/Sources/Features/About/AboutView.swift @@ -20,19 +20,23 @@ struct AboutView: View { case tip /// Local dev build or unknown format. case other(String) + + init(version: String?, docsURL: URL?) { + guard let version else { self = .other(""); return } + if version.range(of: #"^\d+\.\d+\.\d+$"#, options: .regularExpression) != nil { + let slug = version.replacingOccurrences(of: ".", with: "-") + self = .stable(url: docsURL?.appendingPathComponent("install/release-notes/\(slug)")) + return + } + if version.range(of: #"^[0-9a-f]{7,40}$"#, options: .regularExpression) != nil { + self = .tip + return + } + self = .other(version) + } } - private var versionConfig: VersionConfig { - guard let version else { return .other("") } - if version.range(of: #"^\d+\.\d+\.\d+$"#, options: .regularExpression) != nil { - let slug = version.replacingOccurrences(of: ".", with: "-") - return .stable(url: docsURL?.appendingPathComponent("install/release-notes/\(slug)")) - } - if version.range(of: #"^[0-9a-f]{7,40}$"#, options: .regularExpression) != nil { - return .tip - } - return .other(version) - } + private var versionConfig: VersionConfig { VersionConfig(version: version, docsURL: docsURL) } private var copyright: String? { Bundle.main.infoDictionary?["NSHumanReadableCopyright"] as? String }