From d041c73fd12a1a01fb20e2067de6ce3ab606bd02 Mon Sep 17 00:00:00 2001 From: Satindar Dhillon Date: Tue, 10 May 2022 21:16:45 -0700 Subject: [PATCH] show nav bar on tap in the web reader --- .../Sources/App/Views/WebReader/WebReader.swift | 6 ++++++ .../Sources/App/Views/WebReader/WebReaderContainer.swift | 8 ++++++++ .../App/Views/WebReader/WebReaderCoordinator.swift | 5 +++++ 3 files changed, 19 insertions(+) diff --git a/apple/OmnivoreKit/Sources/App/Views/WebReader/WebReader.swift b/apple/OmnivoreKit/Sources/App/Views/WebReader/WebReader.swift index 7e219b424..c1001ca07 100644 --- a/apple/OmnivoreKit/Sources/App/Views/WebReader/WebReader.swift +++ b/apple/OmnivoreKit/Sources/App/Views/WebReader/WebReader.swift @@ -16,6 +16,7 @@ import WebKit @Binding var increaseFontActionID: UUID? @Binding var decreaseFontActionID: UUID? @Binding var annotationSaveTransactionID: UUID? + @Binding var showNavBarActionID: UUID? @Binding var annotation: String func makeCoordinator() -> WebReaderCoordinator { @@ -75,6 +76,11 @@ import WebKit (webView as? WebView)?.decreaseFontSize() } + if showNavBarActionID != context.coordinator.previousShowNavBarActionID { + context.coordinator.previousShowNavBarActionID = showNavBarActionID + context.coordinator.showNavBar() + } + // If the webview had been terminated `needsReload` will have been set to true if context.coordinator.needsReload { loadContent(webView: webView) diff --git a/apple/OmnivoreKit/Sources/App/Views/WebReader/WebReaderContainer.swift b/apple/OmnivoreKit/Sources/App/Views/WebReader/WebReaderContainer.swift index 2a102607a..6126708f2 100644 --- a/apple/OmnivoreKit/Sources/App/Views/WebReader/WebReaderContainer.swift +++ b/apple/OmnivoreKit/Sources/App/Views/WebReader/WebReaderContainer.swift @@ -18,6 +18,7 @@ import WebKit @State var increaseFontActionID: UUID? @State var decreaseFontActionID: UUID? @State var annotationSaveTransactionID: UUID? + @State var showNavBarActionID: UUID? @State var annotation = String() @EnvironmentObject var dataService: DataService @@ -154,8 +155,15 @@ import WebKit increaseFontActionID: $increaseFontActionID, decreaseFontActionID: $decreaseFontActionID, annotationSaveTransactionID: $annotationSaveTransactionID, + showNavBarActionID: $showNavBarActionID, annotation: $annotation ) + .onTapGesture { + withAnimation { + navBarVisibilityRatio = 1 + showNavBarActionID = UUID() + } + } .sheet(item: $safariWebLink) { SafariView(url: $0.url) } diff --git a/apple/OmnivoreKit/Sources/App/Views/WebReader/WebReaderCoordinator.swift b/apple/OmnivoreKit/Sources/App/Views/WebReader/WebReaderCoordinator.swift index 30743cb71..7ed3a19f6 100644 --- a/apple/OmnivoreKit/Sources/App/Views/WebReader/WebReaderCoordinator.swift +++ b/apple/OmnivoreKit/Sources/App/Views/WebReader/WebReaderCoordinator.swift @@ -17,6 +17,7 @@ final class WebReaderCoordinator: NSObject { var lastSavedAnnotationID: UUID? var previousIncreaseFontActionID: UUID? var previousDecreaseFontActionID: UUID? + var previousShowNavBarActionID: UUID? var updateNavBarVisibilityRatio: (Double) -> Void = { _ in } private var yOffsetAtStartOfDrag: Double? private var lastYOffset: Double = 0 @@ -33,6 +34,10 @@ final class WebReaderCoordinator: NSObject { updateNavBarVisibilityRatio(navBarVisibilityRatio) } } + + func showNavBar() { + isNavBarHidden = false + } } extension WebReaderCoordinator: WKScriptMessageHandler {