Skip to content

Commit

Permalink
feat: modify code on iOS
Browse files Browse the repository at this point in the history
  • Loading branch information
pklatka committed Apr 23, 2024
1 parent 54a7fbb commit aa56540
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 37 deletions.
13 changes: 2 additions & 11 deletions packages/turbo/ios/RNSession.swift
Original file line number Diff line number Diff line change
Expand Up @@ -33,10 +33,10 @@ class RNSession: NSObject {

private var visitableView: RNVisitableView?
private var sessionHandle: NSString
private var webViewConfiguration: RNWKWebViewConfiguration
private var webViewConfiguration: WKWebViewConfiguration
private var wkUiDelegate: WKUIDelegate?

init(sessionHandle: NSString, webViewConfiguration: RNWKWebViewConfiguration) {
init(sessionHandle: NSString, webViewConfiguration: WKWebViewConfiguration) {
self.sessionHandle = sessionHandle
self.webViewConfiguration = webViewConfiguration
}
Expand All @@ -50,7 +50,6 @@ class RNSession: NSObject {
session.webView.allowsLinkPreview = false
session.webView.scrollView.contentInsetAdjustmentBehavior = .never
session.webView.uiDelegate = self.wkUiDelegate
updateWebViewConfiguration(webView: session.webView, webViewConfiguration: webViewConfiguration)

#if DEBUG
if #available(iOS 16.4, *) {
Expand All @@ -61,14 +60,6 @@ class RNSession: NSObject {
return session
}()
public lazy var webView: WKWebView = turboSession.webView

func updateWebViewConfiguration(webView: WKWebView, webViewConfiguration: RNWKWebViewConfiguration){
webView.scrollView.isScrollEnabled = webViewConfiguration.isScrollEnabled
}

func updateWebViewConfiguration(webViewConfiguration: RNWKWebViewConfiguration) {
updateWebViewConfiguration(webView: webView, webViewConfiguration: webViewConfiguration)
}

func visitableViewWillAppear(view: RNVisitableView) {
self.visitableView = view
Expand Down
2 changes: 1 addition & 1 deletion packages/turbo/ios/RNSessionManager.swift
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ class RNSessionManager: NSObject {
private var processPool = WKProcessPool()
static var shared: RNSessionManager = RNSessionManager()

func findOrCreateSession(sessionHandle: NSString, webViewConfiguration: RNWKWebViewConfiguration) -> RNSession {
func findOrCreateSession(sessionHandle: NSString, webViewConfiguration: WKWebViewConfiguration) -> RNSession {
if(sessions[sessionHandle] == nil) {
webViewConfiguration.processPool = processPool
sessions[sessionHandle] = RNSession(sessionHandle: sessionHandle, webViewConfiguration: webViewConfiguration)
Expand Down
27 changes: 14 additions & 13 deletions packages/turbo/ios/RNVisitableView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,7 @@ class RNVisitableView: UIView, RNSessionSubscriber {
}
@objc var scrollEnabled: Bool = true {
didSet {
webViewConfiguration.isScrollEnabled = scrollEnabled
updateWebViewConfiguration()
configureWebView()
}
}
@objc var onMessage: RCTDirectEventBlock?
Expand All @@ -53,24 +52,27 @@ class RNVisitableView: UIView, RNSessionSubscriber {
private var onConfirmHandler: ((Bool) -> Void)?
private var onAlertHandler: (() -> Void)?

private lazy var session: RNSession = RNSessionManager.shared.findOrCreateSession(sessionHandle: sessionHandle!, webViewConfiguration: webViewConfiguration)
private var sessionInitialized: Bool = false
private lazy var session: RNSession = {
let session = RNSessionManager.shared.findOrCreateSession(sessionHandle: sessionHandle!, webViewConfiguration: webViewConfiguration)
sessionInitialized = true
return session
}()
private lazy var webView: WKWebView = session.webView
private var webViewConfiguration: RNWKWebViewConfiguration = RNWKWebViewConfiguration()
private var webViewConfiguration: WKWebViewConfiguration = WKWebViewConfiguration()

lazy var controller: RNVisitableViewController? = RNVisitableViewController(reactViewController: reactViewController(), delegate: self)

private var isRefreshing: Bool {
controller!.visitableView.isRefreshing
}

private var canInitializeSession: Bool {
sessionHandle != nil
}

private func updateWebViewConfiguration() {
if (canInitializeSession) {
session.updateWebViewConfiguration(webViewConfiguration: webViewConfiguration)
private func configureWebView() {
if (!sessionInitialized) {
return
}

webView.scrollView.isScrollEnabled = scrollEnabled
}

override func willMove(toWindow newWindow: UIWindow?) {
Expand Down Expand Up @@ -103,8 +105,6 @@ class RNVisitableView: UIView, RNSessionSubscriber {
if (viewController.parent is UIPageViewController) {
controller!.endAppearanceTransition()
}

updateWebViewConfiguration()
}

override func removeFromSuperview() {
Expand Down Expand Up @@ -232,6 +232,7 @@ extension RNVisitableView: RNVisitableViewControllerDelegate {
}

func visitableDidAppear(visitable: Visitable) {
configureWebView()
session.visitableViewDidAppear(view: self)
}

Expand Down
12 changes: 0 additions & 12 deletions packages/turbo/ios/RNWKWebViewConfiguration.swift

This file was deleted.

0 comments on commit aa56540

Please sign in to comment.