|
@@ -26,6 +26,7 @@ struct RedditWebView: NSViewRepresentable {
|
|
|
context.coordinator.lastReloadTrigger = reloadTrigger
|
|
context.coordinator.lastReloadTrigger = reloadTrigger
|
|
|
context.coordinator.lastAppliedDarkMode = isDarkMode
|
|
context.coordinator.lastAppliedDarkMode = isDarkMode
|
|
|
context.coordinator.installLoginBridge()
|
|
context.coordinator.installLoginBridge()
|
|
|
|
|
+ context.coordinator.attachShareBridge(to: container.webView)
|
|
|
context.coordinator.startObservingNavigation(in: container.webView)
|
|
context.coordinator.startObservingNavigation(in: container.webView)
|
|
|
container.applyTheme(isDarkMode: isDarkMode)
|
|
container.applyTheme(isDarkMode: isDarkMode)
|
|
|
|
|
|
|
@@ -49,6 +50,7 @@ struct RedditWebView: NSViewRepresentable {
|
|
|
func updateNSView(_ container: RedditWebViewContainer, context: Context) {
|
|
func updateNSView(_ container: RedditWebViewContainer, context: Context) {
|
|
|
context.coordinator.onCanGoBackChange = onCanGoBackChange
|
|
context.coordinator.onCanGoBackChange = onCanGoBackChange
|
|
|
context.coordinator.installLoginBridge()
|
|
context.coordinator.installLoginBridge()
|
|
|
|
|
+ context.coordinator.attachShareBridge(to: container.webView)
|
|
|
|
|
|
|
|
if context.coordinator.lastAppliedDarkMode != isDarkMode {
|
|
if context.coordinator.lastAppliedDarkMode != isDarkMode {
|
|
|
context.coordinator.lastAppliedDarkMode = isDarkMode
|
|
context.coordinator.lastAppliedDarkMode = isDarkMode
|
|
@@ -128,9 +130,14 @@ struct RedditWebView: NSViewRepresentable {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ func attachShareBridge(to webView: WKWebView) {
|
|
|
|
|
+ RedditShareScriptBridge.shared.webView = webView
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
|
|
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
|
|
|
startObservingNavigation(in: webView)
|
|
startObservingNavigation(in: webView)
|
|
|
reportBackButtonVisibility(for: webView)
|
|
reportBackButtonVisibility(for: webView)
|
|
|
|
|
+ webView.evaluateJavaScript(RedditShareBridgeStyle.injectionScript, completionHandler: nil)
|
|
|
webView.evaluateJavaScript(RedditPostBoundaryStyle.injectionScript, completionHandler: nil)
|
|
webView.evaluateJavaScript(RedditPostBoundaryStyle.injectionScript, completionHandler: nil)
|
|
|
webView.evaluateJavaScript(RedditHomeChromeStyle.injectionScript, completionHandler: nil)
|
|
webView.evaluateJavaScript(RedditHomeChromeStyle.injectionScript, completionHandler: nil)
|
|
|
webView.evaluateJavaScript(RedditAuthChromeStyle.injectionScript, completionHandler: nil)
|
|
webView.evaluateJavaScript(RedditAuthChromeStyle.injectionScript, completionHandler: nil)
|