Add beta ribbon to macOS image in download view

This commit is contained in:
Nindi Gill 2023-06-09 23:16:28 +10:00
parent d44f185e5d
commit 4837dc37c7
No known key found for this signature in database
GPG key ID: FF9A7FD590D4F4B1
4 changed files with 17 additions and 7 deletions

View file

@ -12,13 +12,20 @@ struct DownloadHeaderView: View {
var name: String var name: String
var version: String var version: String
var build: String var build: String
private let length: CGFloat = 32 var beta: Bool
private let length: CGFloat = 48
var body: some View { var body: some View {
HStack { HStack {
ZStack {
ScaledImage(name: imageName, length: length) ScaledImage(name: imageName, length: length)
if beta {
TextRibbon(title: "BETA", length: length * 0.9)
}
}
Text("\(name) \(version) (\(build))") Text("\(name) \(version) (\(build))")
.font(.title) .font(.title)
.multilineTextAlignment(.center)
} }
.padding() .padding()
} }
@ -29,7 +36,7 @@ struct DownloadHeaderView_Previews: PreviewProvider {
static let installer: Installer = .example static let installer: Installer = .example
static var previews: some View { static var previews: some View {
DownloadHeaderView(imageName: firmware.imageName, name: firmware.name, version: firmware.version, build: firmware.build) DownloadHeaderView(imageName: firmware.imageName, name: firmware.name, version: firmware.version, build: firmware.build, beta: false)
DownloadHeaderView(imageName: installer.imageName, name: installer.name, version: installer.version, build: installer.build) DownloadHeaderView(imageName: installer.imageName, name: installer.name, version: installer.version, build: installer.build, beta: false)
} }
} }

View file

@ -23,6 +23,7 @@ struct DownloadView: View {
var name: String var name: String
var version: String var version: String
var build: String var build: String
var beta: Bool
var destinationURL: URL? var destinationURL: URL?
@ObservedObject var taskManager: TaskManager @ObservedObject var taskManager: TaskManager
@State private var value: Double = 0 @State private var value: Double = 0
@ -44,7 +45,7 @@ struct DownloadView: View {
var body: some View { var body: some View {
VStack(spacing: 0) { VStack(spacing: 0) {
DownloadHeaderView(imageName: imageName, name: name, version: version, build: build) DownloadHeaderView(imageName: imageName, name: name, version: version, build: build, beta: beta)
Divider() Divider()
List { List {
ForEach(taskManager.taskGroups, id: \.section) { taskGroup in ForEach(taskManager.taskGroups, id: \.section) { taskGroup in
@ -211,7 +212,7 @@ struct DownloadView_Previews: PreviewProvider {
static let installer: Installer = .example static let installer: Installer = .example
static var previews: some View { static var previews: some View {
DownloadView(downloadType: .firmware, imageName: firmware.imageName, name: firmware.name, version: firmware.version, build: firmware.build, taskManager: .shared) DownloadView(downloadType: .firmware, imageName: firmware.imageName, name: firmware.name, version: firmware.version, build: firmware.build, beta: false, taskManager: .shared)
DownloadView(downloadType: .installer, imageName: installer.imageName, name: installer.name, version: installer.version, build: installer.build, taskManager: .shared) DownloadView(downloadType: .installer, imageName: installer.imageName, name: installer.name, version: installer.version, build: installer.build, beta: false, taskManager: .shared)
} }
} }

View file

@ -47,6 +47,7 @@ struct FirmwareListRow: View {
name: firmware.name, name: firmware.name,
version: firmware.version, version: firmware.version,
build: firmware.build, build: firmware.build,
beta: firmware.beta,
destinationURL: savePanel.url, destinationURL: savePanel.url,
taskManager: taskManager taskManager: taskManager
) )

View file

@ -68,6 +68,7 @@ struct InstallerListRow: View {
name: installer.name.replacingOccurrences(of: " beta", with: ""), name: installer.name.replacingOccurrences(of: " beta", with: ""),
version: installer.version, version: installer.version,
build: installer.build, build: installer.build,
beta: installer.beta,
destinationURL: openPanel.url, destinationURL: openPanel.url,
taskManager: taskManager taskManager: taskManager
) )