         }
         shouldAnimateSearchBar = true
     }
+    
+    override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
+        super.viewWillTransition(to: size, with: coordinator)
+        coordinator.animate(alongsideTransition: { (context) in
+            self.view.setNeedsLayout()
+            self.view.layoutIfNeeded()
+        })
+    }
+    
+    // MARK - State
+    
+    var shouldAnimateSearchBar: Bool = true
+    var isAnimatingSearchBarState: Bool = false
+    @objc var areRecentSearchesEnabled: Bool = true
+    @objc var shouldBecomeFirstResponder: Bool = false
     
     var nonSearchAlpha: CGFloat = 1 {
         didSet {

import UIKit

class SearchViewController: ArticleCollectionViewController, UISearchBarDelegate {
    var shouldAnimateSearchBar: Bool = true
    @objc var areRecentSearchesEnabled: Bool = true
    @objc var shouldBecomeFirstResponder: Bool = false

    override func viewDidLoad() {
        super.viewDidLoad()
        navigationBar.displayType = .largeTitle

        resultsViewController.view.isHidden = true
        navigationBar.isShadowHidingEnabled = true
    }

    override func viewWillAppear(_ animated: Bool) {
        updateLanguageBarVisibility()
        super.viewWillAppear(animated)
