|
|
@ -1,7 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
// TODO
|
|
|
|
// TODO
|
|
|
|
// • Tapping replies
|
|
|
|
// • Tapping replies
|
|
|
|
// • Initial scroll position
|
|
|
|
|
|
|
|
// • Moderator icons
|
|
|
|
// • Moderator icons
|
|
|
|
// • Slight paging glitch
|
|
|
|
// • Slight paging glitch
|
|
|
|
// • Image detail VC transition glitch
|
|
|
|
// • Image detail VC transition glitch
|
|
|
@ -27,7 +26,7 @@ final class ConversationVC : BaseVC, ConversationViewModelDelegate, UITableViewD
|
|
|
|
var mentions: [Mention] = []
|
|
|
|
var mentions: [Mention] = []
|
|
|
|
// Scrolling & paging
|
|
|
|
// Scrolling & paging
|
|
|
|
private var isUserScrolling = false
|
|
|
|
private var isUserScrolling = false
|
|
|
|
private var hasPerformedInitialScroll = false
|
|
|
|
private var didFinishInitialLayout = false
|
|
|
|
private var isLoadingMore = false
|
|
|
|
private var isLoadingMore = false
|
|
|
|
private var scrollDistanceToBottomBeforeUpdate: CGFloat?
|
|
|
|
private var scrollDistanceToBottomBeforeUpdate: CGFloat?
|
|
|
|
|
|
|
|
|
|
|
@ -132,14 +131,16 @@ final class ConversationVC : BaseVC, ConversationViewModelDelegate, UITableViewD
|
|
|
|
|
|
|
|
|
|
|
|
override func viewDidLayoutSubviews() {
|
|
|
|
override func viewDidLayoutSubviews() {
|
|
|
|
super.viewDidLayoutSubviews()
|
|
|
|
super.viewDidLayoutSubviews()
|
|
|
|
if !hasPerformedInitialScroll {
|
|
|
|
if !didFinishInitialLayout {
|
|
|
|
scrollToBottom(isAnimated: false)
|
|
|
|
DispatchQueue.main.async {
|
|
|
|
hasPerformedInitialScroll = true
|
|
|
|
self.scrollToBottom(isAnimated: false)
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
override func viewDidAppear(_ animated: Bool) {
|
|
|
|
override func viewDidAppear(_ animated: Bool) {
|
|
|
|
super.viewDidAppear(animated)
|
|
|
|
super.viewDidAppear(animated)
|
|
|
|
|
|
|
|
didFinishInitialLayout = true
|
|
|
|
markAllAsRead()
|
|
|
|
markAllAsRead()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|