@@ -42,19 +42,6 @@ extension Reactive where Base: WKWebView {
4242 public typealias ActionHandler = ( WKNavigationActionPolicy ) -> Void
4343 /// WKNavigationActionPolicyEvent emits a tuple event of WKWebView + WKNavigationAction + ActionHandler
4444 public typealias WKNavigationActionPolicyEvent = ( webView: WKWebView , action: WKNavigationAction , handler: ActionHandler )
45-
46- private func navigationEventWith( _ arg: [ Any ] ) throws -> WKNavigationEvent {
47- let view = try castOrThrow ( WKWebView . self, arg [ 0 ] )
48- let nav = try castOrThrow ( WKNavigation . self, arg [ 1 ] )
49- return ( view, nav)
50- }
51-
52- private func navigationFailEventWith( _ arg: [ Any ] ) throws -> WKNavigationFailEvent {
53- let view = try castOrThrow ( WKWebView . self, arg [ 0 ] )
54- let nav = try castOrThrow ( WKNavigation . self, arg [ 1 ] )
55- let error = try castOrThrow ( Swift . Error. self, arg [ 2 ] )
56- return ( view, nav, error)
57- }
5845
5946 /// Reactive wrapper for `navigationDelegate`.
6047 public var delegate : DelegateProxy < WKWebView , WKNavigationDelegate > {
@@ -65,23 +52,35 @@ extension Reactive where Base: WKWebView {
6552 public var didCommitNavigation : ControlEvent < WKNavigationEvent > {
6653 let source : Observable < WKNavigationEvent > = delegate
6754 . methodInvoked ( . didCommitNavigation)
68- . map ( navigationEventWith)
55+ . map { arg in
56+ let view = try castOrThrow ( WKWebView . self, arg [ 0 ] )
57+ let nav = try castOrThrow ( WKNavigation . self, arg [ 1 ] )
58+ return ( view, nav)
59+ }
6960 return ControlEvent ( events: source)
7061 }
7162
7263 /// Reactive wrapper for delegate method `webView(_ webView: WKWebView, didStartProvisionalNavigation navigation: WKNavigation!)`.
7364 public var didStartProvisionalNavigation : ControlEvent < WKNavigationEvent > {
7465 let source : Observable < WKNavigationEvent > = delegate
7566 . methodInvoked ( . didStartProvisionalNavigation)
76- . map ( navigationEventWith)
67+ . map { arg in
68+ let view = try castOrThrow ( WKWebView . self, arg [ 0 ] )
69+ let nav = try castOrThrow ( WKNavigation . self, arg [ 1 ] )
70+ return ( view, nav)
71+ }
7772 return ControlEvent ( events: source)
7873 }
7974
8075 /// Reactive wrapper for delegate method `webView(_ webView: WKWebView, didFinish navigation: WKNavigation!)`
8176 public var didFinishNavigation : ControlEvent < WKNavigationEvent > {
8277 let source : Observable < WKNavigationEvent > = delegate
8378 . methodInvoked ( . didFinishNavigation)
84- . map ( navigationEventWith)
79+ . map { arg in
80+ let view = try castOrThrow ( WKWebView . self, arg [ 0 ] )
81+ let nav = try castOrThrow ( WKNavigation . self, arg [ 1 ] )
82+ return ( view, nav)
83+ }
8584 return ControlEvent ( events: source)
8685 }
8786
@@ -98,23 +97,37 @@ extension Reactive where Base: WKWebView {
9897 public var didReceiveServerRedirectForProvisionalNavigation : ControlEvent < WKNavigationEvent > {
9998 let source : Observable < WKNavigationEvent > = delegate
10099 . methodInvoked ( . didReceiveServerRedirectForProvisionalNavigation)
101- . map ( navigationEventWith)
100+ . map { arg in
101+ let view = try castOrThrow ( WKWebView . self, arg [ 0 ] )
102+ let nav = try castOrThrow ( WKNavigation . self, arg [ 1 ] )
103+ return ( view, nav)
104+ }
102105 return ControlEvent ( events: source)
103106 }
104107
105108 /// Reactive wrapper for delegate method `webView(_ webView: WKWebView, didFail navigation: WKNavigation!, withError error: Error)`.
106109 public var didFailNavigation : ControlEvent < WKNavigationFailEvent > {
107110 let source : Observable < WKNavigationFailEvent > = delegate
108111 . methodInvoked ( . didFailNavigation)
109- . map ( navigationFailEventWith)
112+ . map { arg in
113+ let view = try castOrThrow ( WKWebView . self, arg [ 0 ] )
114+ let nav = try castOrThrow ( WKNavigation . self, arg [ 1 ] )
115+ let error = try castOrThrow ( Swift . Error. self, arg [ 2 ] )
116+ return ( view, nav, error)
117+ }
110118 return ControlEvent ( events: source)
111119 }
112120
113121 /// Reactive wrapper for delegate method `webView(_ webView: WKWebView, didFailProvisionalNavigation navigation: WKNavigation!, withError error: Error)`.
114122 public var didFailProvisionalNavigation : ControlEvent < WKNavigationFailEvent > {
115123 let source : Observable < WKNavigationFailEvent > = delegate
116124 . methodInvoked ( . didFailProvisionalNavigation)
117- . map ( navigationFailEventWith)
125+ . map { arg in
126+ let view = try castOrThrow ( WKWebView . self, arg [ 0 ] )
127+ let nav = try castOrThrow ( WKNavigation . self, arg [ 1 ] )
128+ let error = try castOrThrow ( Swift . Error. self, arg [ 2 ] )
129+ return ( view, nav, error)
130+ }
118131 return ControlEvent ( events: source)
119132 }
120133
0 commit comments