Hide public timeline description when user begins scrolling rather than

after cell moves offscreen

Fixes description getting dismissed prematurely on iOS 14 and hitching
when the cell moves offscreen
pull/340/head
Shadowfacts 2 years ago
parent e6e5554edf
commit 1e54235ff5

@ -252,18 +252,13 @@ class TimelineTableViewController: DiffableTimelineLikeTableViewController<Timel
}
}
override func tableView(_ tableView: UITableView, didEndDisplaying cell: UITableViewCell, forRowAt indexPath: IndexPath) {
if let item = dataSource.itemIdentifier(for: indexPath),
case .publicTimelineDescription(local: _) = item {
// trying to remove cells right in didEndDisplaying crashes in UIKit
DispatchQueue.main.async {
self.tableView.contentOffset.y -= cell.bounds.height
var snapshot = self.dataSource.snapshot()
snapshot.deleteItems([item])
self.dataSource.apply(snapshot) {
}
}
override func scrollViewWillBeginDragging(_ scrollView: UIScrollView) {
super.scrollViewWillBeginDragging(scrollView)
if isShowingTimelineDescription {
var snapshot = self.dataSource.snapshot()
snapshot.deleteSections([.header])
self.dataSource.apply(snapshot, animatingDifferences: true)
}
}

@ -117,6 +117,7 @@ class DiffableTimelineLikeTableViewController<Section: Hashable & CaseIterable,
case let .success(snapshot):
self.dataSource.apply(snapshot, animatingDifferences: false)
self.state = .loaded
case let .failure(.client(error)):
self.state = .unloaded
var config = ToastConfiguration(title: "Error Loading")

Loading…
Cancel
Save