mirror of
https://github.com/XcodesOrg/XcodesApp.git
synced 2026-03-25 08:55:46 +00:00
Merge pull request #147 from provTheodoreNewell/teddy/releseDateInInfoPane
Enhancement: Add Xcode release date to info pane in Xcodes.app
This commit is contained in:
commit
6e6c2b0081
3 changed files with 22 additions and 0 deletions
|
|
@ -522,6 +522,7 @@ class AppState: ObservableObject {
|
|||
icon: (installedXcode?.path.string).map(NSWorkspace.shared.icon(forFile:)),
|
||||
requiredMacOSVersion: availableXcode.requiredMacOSVersion,
|
||||
releaseNotesURL: availableXcode.releaseNotesURL,
|
||||
releaseDate: availableXcode.releaseDate,
|
||||
sdks: availableXcode.sdks,
|
||||
compilers: availableXcode.compilers,
|
||||
downloadFileSize: availableXcode.fileSize
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ struct Xcode: Identifiable, CustomStringConvertible {
|
|||
let icon: NSImage?
|
||||
let requiredMacOSVersion: String?
|
||||
let releaseNotesURL: URL?
|
||||
let releaseDate: Date?
|
||||
let sdks: SDKs?
|
||||
let compilers: Compilers?
|
||||
let downloadFileSize: Int64?
|
||||
|
|
@ -25,6 +26,7 @@ struct Xcode: Identifiable, CustomStringConvertible {
|
|||
icon: NSImage?,
|
||||
requiredMacOSVersion: String? = nil,
|
||||
releaseNotesURL: URL? = nil,
|
||||
releaseDate: Date? = nil,
|
||||
sdks: SDKs? = nil,
|
||||
compilers: Compilers? = nil,
|
||||
downloadFileSize: Int64? = nil
|
||||
|
|
@ -36,6 +38,7 @@ struct Xcode: Identifiable, CustomStringConvertible {
|
|||
self.icon = icon
|
||||
self.requiredMacOSVersion = requiredMacOSVersion
|
||||
self.releaseNotesURL = releaseNotesURL
|
||||
self.releaseDate = releaseDate
|
||||
self.sdks = sdks
|
||||
self.compilers = compilers
|
||||
self.downloadFileSize = downloadFileSize
|
||||
|
|
|
|||
|
|
@ -55,6 +55,7 @@ struct InfoPane: View {
|
|||
|
||||
Group{
|
||||
releaseNotes(for: xcode)
|
||||
releaseDate(for: xcode)
|
||||
identicalBuilds(for: xcode)
|
||||
compatibility(for: xcode)
|
||||
sdks(for: xcode)
|
||||
|
|
@ -111,6 +112,22 @@ struct InfoPane: View {
|
|||
EmptyView()
|
||||
}
|
||||
}
|
||||
|
||||
@ViewBuilder
|
||||
private func releaseDate(for xcode: Xcode) -> some View {
|
||||
if let releaseDate = xcode.releaseDate {
|
||||
VStack(alignment: .leading) {
|
||||
Text("Release Date")
|
||||
.font(.headline)
|
||||
.frame(maxWidth: .infinity, alignment: .leading)
|
||||
Text(DateFormatter.downloadsReleaseDate.string(from: releaseDate))
|
||||
.font(.subheadline)
|
||||
.frame(maxWidth: .infinity, alignment: .leading)
|
||||
}
|
||||
} else {
|
||||
EmptyView()
|
||||
}
|
||||
}
|
||||
|
||||
@ViewBuilder
|
||||
private func releaseNotes(for xcode: Xcode) -> some View {
|
||||
|
|
@ -235,6 +252,7 @@ struct InfoPane_Previews: PreviewProvider {
|
|||
icon: NSWorkspace.shared.icon(forFile: "/Applications/Xcode-12.3.0.app"),
|
||||
requiredMacOSVersion: "10.15.4",
|
||||
releaseNotesURL: URL(string: "https://developer.apple.com/documentation/xcode-release-notes/xcode-12_3-release-notes/")!,
|
||||
releaseDate: Date(),
|
||||
sdks: SDKs(
|
||||
macOS: .init(number: "11.1"),
|
||||
iOS: .init(number: "14.3"),
|
||||
|
|
|
|||
Loading…
Reference in a new issue