     guard let context = context as? JoinTeamContext else { return }
     switch context {
     case .none:
-      break
+      selectedId = nil
     case .team(id: let id): // swiftlint:disable:this identifier_name
       selectedId = id
-      navigationItem.rightBarButtonItem?.isEnabled = true
-    }
+    }
+  }
+}
+
+extension JoinTeamViewController: UISearchResultsUpdating {
+  func updateSearchResults(for searchController: UISearchController) {
+    selectedId = nil
+    guard let searchText = searchController.searchBar.text else { return }
+    (dataSource as? JoinTeamDataSource)?.filter(search: searchText, { [weak self] in
+      self?.reload()
+    })
   }
 }
 

      style: .plain,
      target: self, action: #selector(joinTapped))
    navigationItem.rightBarButtonItem?.isEnabled = false
  }

  override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {


  private var teams: [Team] = []
  private var event: Event?
  private var filter: String?

  func reload(completion: @escaping () -> Void) {
    AKFCausesService.getParticipant(fbid: Facebook.id) { [weak self] (result) in
