Merge pull request #2134 from Mackarous/master

Disable selection while applying snapshot
This commit is contained in:
Maurice Parker 2020-06-15 17:23:23 -05:00 committed by GitHub
commit 3b2fcb74fd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 12 additions and 1 deletions

View File

@ -640,12 +640,23 @@ private extension MasterFeedViewController {
func queueApply(snapshot: NSDiffableDataSourceSnapshot<Node, Node>, 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