gh-XcodesOrg-XcodesApp/Xcodes/Frontend/InfoPane/NotInstalledStateButtons.swift
2023-11-23 23:01:03 +07:00

68 lines
1.6 KiB
Swift

//
// NotInstalledStateButtonsView.swift
// Xcodes
//
// Created by Duong Thai on 13/10/2023.
// Copyright © 2023 Robots and Pencils. All rights reserved.
//
import SwiftUI
import Version
struct NotInstalledStateButtons: View {
let downloadFileSizeString: String?
let id: Version
@EnvironmentObject var appState: AppState
var body: some View {
VStack(alignment: .leading) {
Button {
appState.checkMinVersionAndInstall(id: id)
} label: {
Text("Install") .help("Install")
}
if let size = downloadFileSizeString {
Text("DownloadSize")
.font(.headline)
Text(size)
.font(.subheadline)
} else {
EmptyView()
}
}
}
}
struct NotInstalledStateButtons_Preview: PreviewProvider {
static var previews: some View {
WrapperView()
}
}
private struct WrapperView: View {
@State var isSizeNil = false
var downloadFileSizeString: String? {
isSizeNil
? nil
: "1,19 GB"
}
var body: some View {
VStack {
NotInstalledStateButtons(
downloadFileSizeString: downloadFileSizeString,
id: Version(major: 12, minor: 3, patch: 0)
)
.border(.red)
Spacer()
Toggle(isOn: $isSizeNil) {
Text("Is Size Nil?")
}
}
.frame(width: 200, height: 100)
.padding()
}
}