mirror of
https://github.com/XcodesOrg/XcodesApp.git
synced 2026-03-25 08:55:46 +00:00
76 lines
2 KiB
Swift
76 lines
2 KiB
Swift
//
|
|
// InstallingStateButtons.swift
|
|
// Xcodes
|
|
//
|
|
// Created by Duong Thai on 13/10/2023.
|
|
// Copyright © 2023 Robots and Pencils. All rights reserved.
|
|
//
|
|
|
|
import SwiftUI
|
|
import Version
|
|
import XCModel
|
|
import Path
|
|
|
|
struct InstalledStateButtons: View {
|
|
let xcode: Xcode
|
|
|
|
@EnvironmentObject var appState: AppState
|
|
|
|
var body: some View {
|
|
VStack(alignment: .leading) {
|
|
HStack {
|
|
Text(xcode.installedPath?.string ?? "")
|
|
Button(action: { appState.reveal(xcode.installedPath) }) {
|
|
Image(systemName: "arrow.right.circle.fill")
|
|
}
|
|
.buttonStyle(PlainButtonStyle())
|
|
.help("RevealInFinder")
|
|
}
|
|
|
|
HStack {
|
|
SelectButton(xcode: xcode)
|
|
.disabled(xcode.selected)
|
|
.help("Selected")
|
|
|
|
OpenButton(xcode: xcode)
|
|
.help("Open")
|
|
|
|
Spacer()
|
|
UninstallButton(xcode: xcode)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
#Preview {
|
|
InstalledStateButtons(xcode: xcode)
|
|
.environmentObject(configure(AppState()) {
|
|
$0.allXcodes = [xcode]
|
|
})
|
|
.padding()
|
|
.frame(width: 300)
|
|
}
|
|
|
|
private let xcode = Xcode(
|
|
version: Version(major: 12, minor: 3, patch: 0),
|
|
installState: .installed(Path("/Applications/Xcode-12.3.0.app")!),
|
|
selected: true,
|
|
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"),
|
|
watchOS: .init(number: "7.3"),
|
|
tvOS: .init(number: "14.3")
|
|
),
|
|
compilers: Compilers(
|
|
gcc: .init(number: "4"),
|
|
llvm_gcc: .init(number: "213"),
|
|
llvm: .init(number: "2.3"),
|
|
clang: .init(number: "7.3"),
|
|
swift: .init(number: "5.3.2")
|
|
),
|
|
downloadFileSize: 242342424
|
|
)
|