diff --git a/iOS/MasterFeed/MasterFeedViewController.swift b/iOS/MasterFeed/MasterFeedViewController.swift index d868a967c..e2d8f5ef8 100644 --- a/iOS/MasterFeed/MasterFeedViewController.swift +++ b/iOS/MasterFeed/MasterFeedViewController.swift @@ -640,12 +640,23 @@ private extension MasterFeedViewController { func queueApply(snapshot: NSDiffableDataSourceSnapshot, animatingDifferences: Bool = true, completion: (() -> Void)? = nil) { let operation = MasterFeedDataSourceOperation(dataSource: dataSource, snapshot: snapshot, animating: animatingDifferences) - operation.completionBlock = { _ in + operation.completionBlock = { [weak self] _ in + self?.enableTableViewSelection() completion?() } + disableTableViewSelectionIfNecessary() operationQueue.add(operation) } + private func disableTableViewSelectionIfNecessary() { + // We only need to disable tableView selection if the feeds are filtered by unread + guard coordinator.isReadFeedsFiltered else { return } + tableView.allowsSelection = false + } + + private func enableTableViewSelection() { + tableView.allowsSelection = true + } func makeDataSource() -> MasterFeedDataSource { let dataSource = MasterFeedDataSource(tableView: tableView, cellProvider: { [weak self] tableView, indexPath, node in