Skip to content

Commit ad2fd38

Browse files
committed
WIP
1 parent 5083262 commit ad2fd38

File tree

1 file changed

+86
-0
lines changed

1 file changed

+86
-0
lines changed

Sources/ViewTypes/WebView.swift

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
#if !os(watchOS)
2+
import SwiftUI
3+
4+
/// An abstract representation of the `WebView` type in SwiftUI.
5+
///
6+
/// ### iOS
7+
///
8+
/// TODO
9+
///
10+
/// ### tvOS
11+
///
12+
/// TODO
13+
///
14+
/// ### macOS
15+
///
16+
/// TODO
17+
///
18+
/// ### visionOS
19+
///
20+
/// TODO
21+
public struct WebViewType: IntrospectableViewType {}
22+
23+
#if canImport(WebKit)
24+
import WebKit
25+
26+
extension IntrospectableViewType where Self == WebViewType {
27+
public static var webView: Self { .init() }
28+
}
29+
30+
extension iOSViewVersion<MapType, WKWebView> {
31+
@available(*, unavailable, message: "WebView isn't available on iOS 13")
32+
public static let v13 = Self.unavailable()
33+
@available(*, unavailable, message: "WebView isn't available on iOS 14")
34+
public static let v14 = Self.unavailable()
35+
@available(*, unavailable, message: "WebView isn't available on iOS 15")
36+
public static let v15 = Self.unavailable()
37+
@available(*, unavailable, message: "WebView isn't available on iOS 16")
38+
public static let v16 = Self.unavailable()
39+
@available(*, unavailable, message: "WebView isn't available on iOS 17")
40+
public static let v17 = Self.unavailable()
41+
@available(*, unavailable, message: "WebView isn't available on iOS 18")
42+
public static let v18 = Self.unavailable()
43+
public static let v26 = Self(for: .v26)
44+
}
45+
46+
extension tvOSViewVersion<MapType, WKWebView> {
47+
@available(*, unavailable, message: "WebView isn't available on tvOS 13")
48+
public static let v13 = Self.unavailable()
49+
@available(*, unavailable, message: "WebView isn't available on tvOS 14")
50+
public static let v14 = Self.unavailable()
51+
@available(*, unavailable, message: "WebView isn't available on tvOS 15")
52+
public static let v15 = Self.unavailable()
53+
@available(*, unavailable, message: "WebView isn't available on tvOS 16")
54+
public static let v16 = Self.unavailable()
55+
@available(*, unavailable, message: "WebView isn't available on tvOS 17")
56+
public static let v17 = Self.unavailable()
57+
@available(*, unavailable, message: "WebView isn't available on tvOS 18")
58+
public static let v18 = Self.unavailable()
59+
public static let v26 = Self(for: .v26)
60+
}
61+
62+
extension macOSViewVersion<MapType, WKWebView> {
63+
@available(*, unavailable, message: "WebView isn't available on macOS 10.15")
64+
public static let v10_15 = Self.unavailable()
65+
@available(*, unavailable, message: "WebView isn't available on macOS 11")
66+
public static let v11 = Self.unavailable()
67+
@available(*, unavailable, message: "WebView isn't available on macOS 12")
68+
public static let v12 = Self.unavailable()
69+
@available(*, unavailable, message: "WebView isn't available on macOS 13")
70+
public static let v13 = Self.unavailable()
71+
@available(*, unavailable, message: "WebView isn't available on macOS 14")
72+
public static let v14 = Self.unavailable()
73+
@available(*, unavailable, message: "WebView isn't available on macOS 15")
74+
public static let v15 = Self.unavailable()
75+
public static let v26 = Self(for: .v26)
76+
}
77+
78+
extension visionOSViewVersion<MapType, WKWebView> {
79+
@available(*, unavailable, message: "WebView isn't available on visionOS 1")
80+
public static let v1 = Self.unavailable()
81+
@available(*, unavailable, message: "WebView isn't available on visionOS 2")
82+
public static let v2 = Self.unavailable()
83+
public static let v26 = Self(for: .v26)
84+
}
85+
#endif
86+
#endif

0 commit comments

Comments
 (0)