From be8c14bc65425c80eb3212bbd35c8f52f4da5458 Mon Sep 17 00:00:00 2001 From: Maurice Parker Date: Wed, 28 Aug 2019 20:21:50 -0500 Subject: [PATCH] Change to reload the individual row instead of just changing its contents --- iOS/MasterFeed/MasterFeedViewController.swift | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/iOS/MasterFeed/MasterFeedViewController.swift b/iOS/MasterFeed/MasterFeedViewController.swift index 73105174a..72bac2de0 100644 --- a/iOS/MasterFeed/MasterFeedViewController.swift +++ b/iOS/MasterFeed/MasterFeedViewController.swift @@ -389,10 +389,7 @@ class MasterFeedViewController: UITableViewController, UndoableCommandRunner { } coordinator.expand(indexPath) - - // I don't think this should be necessary when using diffable datasources, but they don't - // always reload cells that you want them too. - configureCellsForRepresentedObject(parent.representedObject) + reloadNode(parent) self.applyChanges(animate: true) { [weak self] in if let indexPath = self?.coordinator.indexPathFor(node) { @@ -428,6 +425,12 @@ private extension MasterFeedViewController { addNewItemButton.isEnabled = !AccountManager.shared.activeAccounts.isEmpty } + func reloadNode(_ node: Node) { + var snapshot = dataSource.snapshot() + snapshot.reloadItems([node]) + dataSource.apply(snapshot) + } + func applyChanges(animate: Bool, completion: (() -> Void)? = nil) { let selectedNode: Node? = { @@ -725,7 +728,7 @@ private extension MasterFeedViewController { feed.rename(to: name) { result in switch result { case .success: - self?.configureCellsForRepresentedObject(feed) + self?.reloadNode(node) case .failure(let error): self?.presentError(error) } @@ -734,7 +737,7 @@ private extension MasterFeedViewController { folder.rename(to: name) { result in switch result { case .success: - self?.configureCellsForRepresentedObject(folder) + self?.reloadNode(node) case .failure(let error): self?.presentError(error) }