mirror of
https://github.com/XcodesOrg/XcodesApp.git
synced 2026-03-25 08:55:46 +00:00
79 lines
2.1 KiB
Swift
79 lines
2.1 KiB
Swift
//
|
|
// IdenticalBuildView.swift
|
|
// Xcodes
|
|
//
|
|
// Created by Duong Thai on 11/10/2023.
|
|
// Copyright © 2023 Robots and Pencils. All rights reserved.
|
|
//
|
|
|
|
import SwiftUI
|
|
import Version
|
|
|
|
struct IdenticalBuildsView: View {
|
|
let builds: [Version]
|
|
private let isEmpty: Bool
|
|
private let accessibilityDescription: String
|
|
|
|
var body: some View {
|
|
if isEmpty {
|
|
EmptyView()
|
|
} else {
|
|
VStack(alignment: .leading) {
|
|
HStack {
|
|
Text("IdenticalBuilds")
|
|
Image(systemName: "square.fill.on.square.fill")
|
|
.foregroundColor(.secondary)
|
|
.accessibility(hidden: true)
|
|
.help("IdenticalBuilds.help")
|
|
}
|
|
.font(.headline)
|
|
|
|
ForEach(builds, id: \.description) { version in
|
|
Text("• \(version.appleDescription)")
|
|
.font(.subheadline)
|
|
}
|
|
}
|
|
.accessibilityElement()
|
|
.accessibility(label: Text("IdenticalBuilds"))
|
|
.accessibility(value: Text(accessibilityDescription))
|
|
.accessibility(hint: Text("IdenticalBuilds.help"))
|
|
}
|
|
}
|
|
|
|
init(builds: [Version]) {
|
|
self.builds = builds
|
|
self.isEmpty = builds.isEmpty
|
|
self.accessibilityDescription = builds
|
|
.map(\.appleDescription)
|
|
.joined(separator: ", ")
|
|
}
|
|
}
|
|
|
|
struct IdenticalBuildsView_Preview: PreviewProvider {
|
|
static var previews: some View {
|
|
WrapperView()
|
|
}
|
|
}
|
|
|
|
private struct WrapperView: View {
|
|
@State var isEmpty = false
|
|
var builds: [Version] {
|
|
isEmpty
|
|
? []
|
|
: [.init(xcodeVersion: "15.0")!,
|
|
.init(xcodeVersion: "15.1")!]
|
|
}
|
|
|
|
var body: some View {
|
|
VStack {
|
|
IdenticalBuildsView(builds: builds)
|
|
.border(.red)
|
|
Spacer()
|
|
Toggle(isOn: $isEmpty) {
|
|
Text("No Builds?")
|
|
}
|
|
}
|
|
.frame(width: 300, height: 100)
|
|
.padding()
|
|
}
|
|
}
|