From 0bff214dfd7bae60ba9accceb848f363b99a3c7a Mon Sep 17 00:00:00 2001 From: Max Goedjen Date: Fri, 12 Sep 2025 20:53:05 -0700 Subject: [PATCH] Integrations to window --- Sources/Secretive.xcodeproj/project.pbxproj | 4 ++ .../Configuration/IntegrationsView.swift | 44 ++++------------- .../Views/Styles/WindowBackgroundStyle.swift | 47 +++++++++++++++++++ 3 files changed, 59 insertions(+), 36 deletions(-) create mode 100644 Sources/Secretive/Views/Styles/WindowBackgroundStyle.swift diff --git a/Sources/Secretive.xcodeproj/project.pbxproj b/Sources/Secretive.xcodeproj/project.pbxproj index ab820fa..58b67b3 100644 --- a/Sources/Secretive.xcodeproj/project.pbxproj +++ b/Sources/Secretive.xcodeproj/project.pbxproj @@ -73,6 +73,7 @@ 50BDCB762E6450950072D2E7 /* ConfigurationItemView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50BDCB752E6450950072D2E7 /* ConfigurationItemView.swift */; }; 50C385A52407A76D00AF2719 /* SecretDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50C385A42407A76D00AF2719 /* SecretDetailView.swift */; }; 50CF4ABC2E601B0F005588DC /* ActionButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50CF4ABB2E601B0F005588DC /* ActionButtonStyle.swift */; }; + 50E4C4532E73C78C00C73783 /* WindowBackgroundStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50E4C4522E73C78900C73783 /* WindowBackgroundStyle.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -239,6 +240,7 @@ 50BDCB752E6450950072D2E7 /* ConfigurationItemView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConfigurationItemView.swift; sourceTree = ""; }; 50C385A42407A76D00AF2719 /* SecretDetailView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretDetailView.swift; sourceTree = ""; }; 50CF4ABB2E601B0F005588DC /* ActionButtonStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActionButtonStyle.swift; sourceTree = ""; }; + 50E4C4522E73C78900C73783 /* WindowBackgroundStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WindowBackgroundStyle.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -296,6 +298,7 @@ 504788ED2E681EB200B4556F /* Styles */ = { isa = PBXGroup; children = ( + 50E4C4522E73C78900C73783 /* WindowBackgroundStyle.swift */, 50CF4ABB2E601B0F005588DC /* ActionButtonStyle.swift */, 50BDCB732E6436C60072D2E7 /* ErrorStyle.swift */, 504789222E697DD300B4556F /* BoxBackgroundStyle.swift */, @@ -686,6 +689,7 @@ 504788F22E681F3A00B4556F /* Instructions.swift in Sources */, 50BDCB742E6436CA0072D2E7 /* ErrorStyle.swift in Sources */, 2C4A9D2F2636FFD3008CC8E2 /* EditSecretView.swift in Sources */, + 50E4C4532E73C78C00C73783 /* WindowBackgroundStyle.swift in Sources */, 5091D2BC25183B830049FD9B /* ApplicationDirectoryController.swift in Sources */, 504788EC2E680DC800B4556F /* URLs.swift in Sources */, 504789232E697DD300B4556F /* BoxBackgroundStyle.swift in Sources */, diff --git a/Sources/Secretive/Views/Configuration/IntegrationsView.swift b/Sources/Secretive/Views/Configuration/IntegrationsView.swift index b738d0e..ced62d0 100644 --- a/Sources/Secretive/Views/Configuration/IntegrationsView.swift +++ b/Sources/Secretive/Views/Configuration/IntegrationsView.swift @@ -21,46 +21,18 @@ struct IntegrationsView: View { } } } detail: { - IntegrationsDetailView(selectedInstruction: $selectedInstruction) - .fauxToolbar { - Button(.setupDoneButton) { - dismiss() - } - .normalButton() - } + IntegrationsDetailView(selectedInstruction: $selectedInstruction) } + .toolbar { + Button(.setupDoneButton) { + dismiss() + } + } + .hiddenToolbar() + .windowBackgroundStyle(.thinMaterial) .onAppear { selectedInstruction = instructions.gettingStarted } - } - -} - -extension View { - - func fauxToolbar(content: () -> Content) -> some View { - modifier(FauxToolbarModifier(toolbarContent: content())) - } - -} - -struct FauxToolbarModifier: ViewModifier { - - var toolbarContent: ToolbarContent - - func body(content: Content) -> some View { - VStack(alignment: .leading, spacing: 0) { - content - Divider() - HStack { - Spacer() - toolbarContent - .padding(.top, 8) - .padding(.trailing, 16) - .padding(.bottom, 16) - } - } - .frame(minWidth: 400, minHeight: 400) } diff --git a/Sources/Secretive/Views/Styles/WindowBackgroundStyle.swift b/Sources/Secretive/Views/Styles/WindowBackgroundStyle.swift new file mode 100644 index 0000000..809d5e3 --- /dev/null +++ b/Sources/Secretive/Views/Styles/WindowBackgroundStyle.swift @@ -0,0 +1,47 @@ +import SwiftUI + +struct WindowBackgroundStyleModifier: ViewModifier { + + let shapeStyle: any ShapeStyle + + func body(content: Content) -> some View { + if #available(macOS 15.0, *) { + content + .containerBackground( + shapeStyle, for: .window + ) + } else { + content + } + } + +} + +extension View { + + func windowBackgroundStyle(_ style: some ShapeStyle) -> some View { + modifier(WindowBackgroundStyleModifier(shapeStyle: style)) + } + +} + +struct HiddenToolbarModifier: ViewModifier { + + func body(content: Content) -> some View { + if #available(macOS 15.0, *) { + content + .toolbarBackgroundVisibility(.hidden, for: .automatic) + } else { + content + } + } + +} + +extension View { + + func hiddenToolbar() -> some View { + modifier(HiddenToolbarModifier()) + } + +}