Fixes crash when restoring remote record without local version
This commit is contained in:
parent
fcdd3c7840
commit
be047b28a6
@ -136,7 +136,7 @@ private extension RecordVersionsViewController
|
|||||||
|
|
||||||
let localVersionsDataSource = RSTDynamicTableViewDataSource<Version>()
|
let localVersionsDataSource = RSTDynamicTableViewDataSource<Version>()
|
||||||
localVersionsDataSource.numberOfSectionsHandler = { 1 }
|
localVersionsDataSource.numberOfSectionsHandler = { 1 }
|
||||||
localVersionsDataSource.numberOfItemsHandler = { [weak self] _ in self?.record.localModificationDate != nil ? 1 : 0 }
|
localVersionsDataSource.numberOfItemsHandler = { [weak self] _ in self?.record.localModificationDate != nil ? 1 : 0 } // fetchVersions() assumes this logic, so update there too.
|
||||||
localVersionsDataSource.cellConfigurationHandler = { [weak self] (cell, _, indexPath) in
|
localVersionsDataSource.cellConfigurationHandler = { [weak self] (cell, _, indexPath) in
|
||||||
guard let `self` = self else { return }
|
guard let `self` = self else { return }
|
||||||
|
|
||||||
@ -200,6 +200,19 @@ private extension RecordVersionsViewController
|
|||||||
self.versions = versions
|
self.versions = versions
|
||||||
|
|
||||||
DispatchQueue.main.async {
|
DispatchQueue.main.async {
|
||||||
|
let previousLocalVersionExists = self.tableView.numberOfRows(inSection: Section.local.rawValue) > 0
|
||||||
|
let localVersionExists = self.record.localModificationDate != nil
|
||||||
|
|
||||||
|
let localVersionIndexPath = IndexPath(row: 0, section: Section.local.rawValue)
|
||||||
|
if !previousLocalVersionExists && localVersionExists
|
||||||
|
{
|
||||||
|
self.tableView.insertRows(at: [localVersionIndexPath], with: .fade)
|
||||||
|
}
|
||||||
|
else if previousLocalVersionExists && !localVersionExists
|
||||||
|
{
|
||||||
|
self.tableView.deleteRows(at: [localVersionIndexPath], with: .fade)
|
||||||
|
}
|
||||||
|
|
||||||
let count = self.tableView.numberOfRows(inSection: Section.remote.rawValue)
|
let count = self.tableView.numberOfRows(inSection: Section.remote.rawValue)
|
||||||
|
|
||||||
let deletions = (0 ..< count).map { (row) -> RSTCellContentChange in
|
let deletions = (0 ..< count).map { (row) -> RSTCellContentChange in
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user