             return
         }
         
+        guard !isWaitingForSearchSuggestionUpdate else {
+            return
+        }
+        
         searchBar.endEditing(true)
-        guard !isWaitingForSearchSuggestionUpdate else {
-            isGoingToSearchForFirstSearchSuggestionAfterUpdate = true
-            return
-        }
         searchForFirstSearchSuggestion()
     }
     

    }
    
    func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
        updateSearchSuggestions(withCompletions: [])

        isWaitingForSearchSuggestionUpdate = true
        NSObject.cancelPreviousPerformRequests(withTarget: self)
        perform(#selector(updateSearchCompletionsFromSearchBarText), with: nil, afterDelay: 0.2)
    }

        }
    }
    
    private var isWaitingForSearchSuggestionUpdate = false
    
    func updateSearchCompletionsFromSearchBarText() {
        switch (currentSearchFilter) {
        case .top:
            updateSearchCompletionsFromSearchBarTextForTopArticles()
        case .saved:
            // TODO: add suggestions here?
            break
        }
        
        self.isWaitingForSearchSuggestionUpdate = false
    }
    
    func updateSearchCompletionsFromSearchBarTextForTopArticles()
