From 9997724409ab3c1b4efc2bd7b4a4a6e21bbc0c49 Mon Sep 17 00:00:00 2001 From: Kenta Kubo <601636+kkebo@users.noreply.github.com> Date: Mon, 5 May 2025 01:18:33 +0900 Subject: [PATCH 1/2] fix: refine layout of `HowToActivateView` --- DNSecure/Views/ContentView.swift | 26 ++++++++++++++++++++------ DNSecure/Views/HowToActivateView.swift | 24 ++++-------------------- 2 files changed, 24 insertions(+), 26 deletions(-) diff --git a/DNSecure/Views/ContentView.swift b/DNSecure/Views/ContentView.swift index 07a508d..55c5c9a 100644 --- a/DNSecure/Views/ContentView.swift +++ b/DNSecure/Views/ContentView.swift @@ -186,11 +186,11 @@ extension ContentView: View { } } detail: { if self.selection == -1 { - HowToActivateView(isSheet: false) + HowToActivateView() } else if let i = self.selection { self.detailView(at: i) } else if !self.isEnabled { - HowToActivateView(isSheet: false) + HowToActivateView() } else { Text("Select a server on the sidebar") .navigationBarHidden(true) @@ -223,7 +223,7 @@ extension ContentView: View { tag: -1, selection: self.$selection ) { - HowToActivateView(isSheet: false) + HowToActivateView() } } else { // Workaround for iOS 15 @@ -263,11 +263,11 @@ extension ContentView: View { } if self.selection == -1 { - HowToActivateView(isSheet: false) + HowToActivateView() } else if let i = self.selection { self.detailView(at: i) } else if !self.isEnabled { - HowToActivateView(isSheet: false) + HowToActivateView() } else { Text("Select a server on the sidebar") .navigationBarHidden(true) @@ -326,7 +326,21 @@ extension ContentView: View { self.guideIsPresented = true } .sheet(isPresented: self.$guideIsPresented) { - HowToActivateView(isSheet: true) + NavigationView { + HowToActivateView() + .safeAreaInset(edge: .bottom) { + Button("Dismiss") { + self.guideIsPresented = false + } + .buttonStyle(.borderedProminent) + .controlSize(.large) + .hoverEffect() + .padding() + .frame(maxWidth: .infinity) + .background(Color(.systemBackground)) + } + } + .navigationViewStyle(.stack) } } } diff --git a/DNSecure/Views/HowToActivateView.swift b/DNSecure/Views/HowToActivateView.swift index 1abd506..e8a918f 100644 --- a/DNSecure/Views/HowToActivateView.swift +++ b/DNSecure/Views/HowToActivateView.swift @@ -13,20 +13,13 @@ private enum MacOSVersion { } struct HowToActivateView { - @Environment(\.dismiss) private var dismiss @State private var macOSVersion: MacOSVersion = .venturaOrLater - let isSheet: Bool } extension HowToActivateView: View { var body: some View { - VStack { - if self.isSheet { - Text("How to Activate") - .font(.title) - Spacer() - } - ScrollView { + ScrollView { + VStack { #if targetEnvironment(macCatalyst) Picker("", selection: self.$macOSVersion) { Text("macOS 13 or later").tag(MacOSVersion.venturaOrLater) @@ -160,21 +153,12 @@ extension HowToActivateView: View { #endif } } - if self.isSheet { - Spacer() - Button("Dismiss") { - self.dismiss() - } - .buttonStyle(.borderedProminent) - .controlSize(.large) - .hoverEffect() - } + .padding() } - .padding() .navigationTitle("How to Activate") } } #Preview { - HowToActivateView(isSheet: true) + HowToActivateView() } From 3b29799e70f08c5a1f3f0438e998a3185fddcea3 Mon Sep 17 00:00:00 2001 From: Kenta Kubo <601636+kkebo@users.noreply.github.com> Date: Mon, 5 May 2025 01:19:22 +0900 Subject: [PATCH 2/2] fix: refine layout of the bottom bar on the sidebar --- DNSecure/Views/ContentView.swift | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/DNSecure/Views/ContentView.swift b/DNSecure/Views/ContentView.swift index 55c5c9a..2077087 100644 --- a/DNSecure/Views/ContentView.swift +++ b/DNSecure/Views/ContentView.swift @@ -310,21 +310,21 @@ extension ContentView: View { EditButton() } ToolbarItem(placement: .status) { - VStack { + VStack(spacing: 0) { HStack { Circle() .frame(width: 10, height: 10) .foregroundStyle(self.isEnabled ? .green : .secondary) Text(self.isEnabled ? "Active" : "Inactive") - #if targetEnvironment(macCatalyst) - Text("-") - Button("Refresh", action: self.updateStatus) - #endif } if !self.isEnabled { - Button("How to Activate") { + Button { self.guideIsPresented = true + } label: { + Label("How to Activate", systemImage: "questionmark.circle") } + .labelStyle(.titleAndIcon) + .font(.caption) .sheet(isPresented: self.$guideIsPresented) { NavigationView { HowToActivateView() @@ -345,6 +345,14 @@ extension ContentView: View { } } } + #if targetEnvironment(macCatalyst) + ToolbarItemGroup(placement: .bottomBar) { + Spacer() + Button(action: self.updateStatus) { + Label("Refresh", systemImage: "arrow.clockwise") + } + } + #endif } private func sidebarRow(at i: Int) -> some View {