                 self?.setWebViewHidden(false, animated: true)
             })
         } else if let fragment = article.viewedFragment {
-            scrollRestorationState = .scrollToAnchor(fragment)
+            scrollRestorationState = .scrollToAnchor(fragment, completion: { [weak self] in
+                self?.setWebViewHidden(false, animated: true)
+            })
+        } else {
+            setWebViewHidden(false, animated: true)
         }
     }
     

        /// Scroll to percentage Y offset
        case scrollToPercentage(_ percentageOffsetY: CGFloat)
        /// Scroll to anchor, an id of an element on the page
        case scrollToAnchor(_ anchor: String, attempt: Int = 1, maxAttempts: Int = 5)
    }
    
    private var scrollRestorationState: ScrollRestorationState = .none

        case .scrollToPercentage(let verticalOffsetPercentage):
            scrollRestorationState = .none
            webView.scrollView.verticalOffsetPercentage = verticalOffsetPercentage
        case .scrollToAnchor(let anchor, let attempt, let maxAttempts, let completion):
            scrollRestorationState = .none
            self.scroll(to: anchor, animated: true) { [weak self] (success) in
                guard !success, attempt < maxAttempts else {
                    completion?()
                    return
                }
                completion?()
                self?.scrollRestorationState = .scrollToAnchor(anchor, attempt: attempt + 1, maxAttempts: maxAttempts, completion: completion)
            }
        }
    }
