From 41e1a301ef2e64961d5475b60a3a9aae2790a69a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=A1rady=20Mil=C3=A1n?= <61704770+MilanVarady@users.noreply.github.com> Date: Tue, 7 Jan 2025 21:47:39 +0100 Subject: [PATCH] Mark card size variable --- Applite/Views/Components/Card.swift | 9 +++-- .../App Migration/AppMigrationView.swift | 37 +++++++++---------- .../BrewManagementView+ActionsView.swift | 11 ++---- .../BrewManagementView+InfoView.swift | 4 +- .../SetupView+BrewPathDetectedView.swift | 3 +- 5 files changed, 31 insertions(+), 33 deletions(-) diff --git a/Applite/Views/Components/Card.swift b/Applite/Views/Components/Card.swift index 32f75b5..b56cdd3 100644 --- a/Applite/Views/Components/Card.swift +++ b/Applite/Views/Components/Card.swift @@ -9,15 +9,18 @@ import SwiftUI /// A reusabe view that adds a rounded rectange background shadow struct Card: View { - let cardWidth: CGFloat - let cardHeight: CGFloat let paddig: CGFloat @ViewBuilder let content: Content + init(paddig: CGFloat = 5, content: () -> Content) { + self.paddig = paddig + self.content = content() + } + var body: some View { content + .frame(maxWidth: .infinity, maxHeight: .infinity) // Take available space .padding(paddig) - .frame(width: cardWidth, height: cardHeight) .background(.regularMaterial) .clipShape(RoundedRectangle(cornerRadius: 8)) .shadow(radius: 3) diff --git a/Applite/Views/Detail Views/App Migration/AppMigrationView.swift b/Applite/Views/Detail Views/App Migration/AppMigrationView.swift index c91af52..781097f 100644 --- a/Applite/Views/Detail Views/App Migration/AppMigrationView.swift +++ b/Applite/Views/Detail Views/App Migration/AppMigrationView.swift @@ -9,32 +9,28 @@ import SwiftUI struct AppMigrationView: View { let width: CGFloat = 620 - let columnSpacing: CGFloat = 40 - - var cardWidth: CGFloat { - (width - columnSpacing) / 2 - } - let cardHeight: CGFloat = 220 let cardPadding: CGFloat = 24 var body: some View { - VStack { - titleAndDescription - .padding(.vertical, 40) - - HStack(spacing: columnSpacing) { - Card(cardWidth: cardWidth, cardHeight: cardHeight, paddig: cardPadding) { - ExportView() - } - - Card(cardWidth: cardWidth, cardHeight: cardHeight, paddig: cardPadding) { - ImportView() + ScrollView { + VStack { + titleAndDescription + .padding(.vertical, 40) + + HStack(spacing: 40) { + Card(paddig: cardPadding) { + ExportView() + } + + Card(paddig: cardPadding) { + ImportView() + } } + + Spacer() } - - Spacer() + .frame(maxWidth: width) } - .frame(maxWidth: width) } var titleAndDescription: some View { @@ -50,4 +46,5 @@ struct AppMigrationView: View { #Preview { AppMigrationView() + .padding() } diff --git a/Applite/Views/Detail Views/Brew Management/BrewManagementView+ActionsView.swift b/Applite/Views/Detail Views/Brew Management/BrewManagementView+ActionsView.swift index 499172e..d1abc9c 100644 --- a/Applite/Views/Detail Views/Brew Management/BrewManagementView+ActionsView.swift +++ b/Applite/Views/Detail Views/Brew Management/BrewManagementView+ActionsView.swift @@ -12,7 +12,6 @@ extension BrewManagementView { @Binding var modifyingBrew: Bool let cardWidth: CGFloat let cardPadding: CGFloat - let cardHeight: CGFloat = 210 @State var updateDone = false @State var reinstallDone = false @@ -39,8 +38,6 @@ extension BrewManagementView { HStack { ActionCard( - cardWidth: cardWidth, - cardHeight: cardHeight, paddig: cardPadding, actionSuccessful: $updateDone, remarks: [ @@ -49,10 +46,9 @@ extension BrewManagementView { ) { updateButton } + .frame(width: cardWidth) ActionCard( - cardWidth: cardWidth, - cardHeight: cardHeight, paddig: cardPadding, actionSuccessful: $reinstallDone, remarks: [ @@ -62,6 +58,7 @@ extension BrewManagementView { ) { reinstallButton } + .frame(width: cardWidth) } .padding(.bottom, 10) @@ -82,15 +79,13 @@ extension BrewManagementView { } private struct ActionCard: View { - let cardWidth: CGFloat - let cardHeight: CGFloat let paddig: CGFloat @Binding var actionSuccessful: Bool let remarks: [Remark] @ViewBuilder let actionButton: ActionButton var body: some View { - Card(cardWidth: cardWidth, cardHeight: cardHeight, paddig: paddig) { + Card(paddig: paddig) { VStack(alignment: .leading) { HStack { actionButton diff --git a/Applite/Views/Detail Views/Brew Management/BrewManagementView+InfoView.swift b/Applite/Views/Detail Views/Brew Management/BrewManagementView+InfoView.swift index be4e981..352c013 100644 --- a/Applite/Views/Detail Views/Brew Management/BrewManagementView+InfoView.swift +++ b/Applite/Views/Detail Views/Brew Management/BrewManagementView+InfoView.swift @@ -24,8 +24,10 @@ extension BrewManagementView { HStack { infoCard(title: "Homebrew Version", info: homebrewVersion) + .frame(width: cardWidth) infoCard(title: "Apps Installed", info: numberOfCasks) + .frame(width: cardWidth) } } .task { @@ -45,7 +47,7 @@ extension BrewManagementView { } private func infoCard(title: LocalizedStringKey, info: String) -> some View { - Card(cardWidth: cardWidth, cardHeight: cardHeight, paddig: cardPadding) { + Card { VStack { Text(title) .font(.system(size: 16, weight: .bold)) diff --git a/Applite/Views/Setup/SetupView+BrewPathDetectedView.swift b/Applite/Views/Setup/SetupView+BrewPathDetectedView.swift index e55637c..1779ac5 100644 --- a/Applite/Views/Setup/SetupView+BrewPathDetectedView.swift +++ b/Applite/Views/Setup/SetupView+BrewPathDetectedView.swift @@ -21,13 +21,14 @@ extension SetupView { Text("A brew installation was detected at:") - Card(cardWidth: 200, cardHeight: 30, paddig: 5) { + Card { HStack { Image(systemName: "mug") Text(BrewPaths.currentBrewDirectory) .font(.system(size: 12, design: .monospaced)) } } + .frame(maxWidth: 200, maxHeight: 20) .padding(.bottom) Text("Continue to use detected installation or select another option below.")