Skip to content

Commit b6708a5

Browse files
committed
Update NaviSheetWebView
1 parent f0aed2f commit b6708a5

File tree

2 files changed

+47
-19
lines changed

2 files changed

+47
-19
lines changed

Package.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
// swift-tools-version:5.5
1+
// swift-tools-version:5.7
22
// The swift-tools-version declares the minimum version of Swift required to build this package.
33

44
import PackageDescription
55

66
let package = Package(
77
name: "SwiftComponents",
8-
platforms: [.iOS(.v15), .macOS(.v12), .watchOS(.v8)],
8+
platforms: [.iOS(.v16), .macOS(.v12), .watchOS(.v8)],
99
products: [
1010
// Products define the executables and libraries a package produces, and make them visible to other packages.
1111
.library(

Sources/SwiftUIComponents/UIKitWrapper/WebView.swift

Lines changed: 45 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -88,10 +88,10 @@ public struct NaviWebView: View {
8888
}
8989

9090

91-
// MARK: - NaviPopupWebView - with web navigation header
91+
// MARK: - NaviSheetWebView - with web navigation header
9292

9393

94-
public struct NaviPopupWebView: View {
94+
public struct NaviSheetWebView: View {
9595
@Environment(\.dismiss) private var dismiss
9696

9797
let url: String
@@ -112,30 +112,58 @@ public struct NaviPopupWebView: View {
112112
preferredContentMode: preferredContentMode,
113113
webViewObject: webViewObject)
114114
.toolbar {
115-
ToolbarItemGroup(placement: .topBarLeading) {
116-
HStack(spacing: 10) {
115+
if #available(iOS 26.0, *) {
116+
ToolbarItem(placement: .topBarLeading) {
117117
Button(action: {
118118
dismiss()
119119
}, label: {
120120
Image(systemName: "xmark")
121121
})
122-
123-
Divider()
124122
}
125123

126-
Button {
127-
webViewObject.webView?.goBack()
128-
} label: {
129-
Image(systemName: "chevron.backward")
124+
ToolbarSpacer(.fixed, placement: .topBarLeading)
125+
126+
if webViewObject.webView?.canGoBack ?? false {
127+
ToolbarItem(placement: .topBarLeading) {
128+
Button {
129+
webViewObject.webView?.goBack()
130+
} label: {
131+
Image(systemName: "chevron.backward")
132+
}
133+
}
130134
}
131-
.disabled(!(webViewObject.webView?.canGoBack ?? false))
132135

133-
Button {
134-
webViewObject.webView?.goForward()
135-
} label: {
136-
Image(systemName: "chevron.forward")
136+
if webViewObject.webView?.canGoForward ?? false {
137+
ToolbarItem(placement: .topBarLeading) {
138+
Button {
139+
webViewObject.webView?.goForward()
140+
} label: {
141+
Image(systemName: "chevron.forward")
142+
}
143+
}
144+
}
145+
} else {
146+
ToolbarItemGroup(placement: .topBarLeading) {
147+
Button(action: {
148+
dismiss()
149+
}, label: {
150+
Image(systemName: "xmark")
151+
})
152+
153+
Button {
154+
webViewObject.webView?.goBack()
155+
} label: {
156+
Image(systemName: "chevron.backward")
157+
}
158+
.disabled(!(webViewObject.webView?.canGoBack ?? false))
159+
160+
Button {
161+
webViewObject.webView?.goForward()
162+
} label: {
163+
Image(systemName: "chevron.forward")
164+
}
165+
.disabled(!(webViewObject.webView?.canGoForward ?? false))
137166
}
138-
.disabled(!(webViewObject.webView?.canGoForward ?? false))
139167
}
140168

141169
ToolbarItemGroup(placement: .topBarTrailing) {
@@ -167,7 +195,7 @@ struct WebView_Previews: PreviewProvider {
167195
NaviWebView(url: "https://www.apple.com")
168196
.previewDisplayName("NaviWebView")
169197

170-
NaviPopupWebView(url: "https://www.apple.com")
198+
NaviSheetWebView(url: "https://www.apple.com")
171199
.previewDisplayName("NaviPopupWebView")
172200
}
173201
}

0 commit comments

Comments
 (0)