Skip to content

Commit 976838e

Browse files
authored
Merge pull request #861 from Adamant-im/trello.com/c/sG80IZan/v2
[trello.com/c/sG80IZan/v2] fix reading Under transaction details
2 parents 4a91aac + 31c860f commit 976838e

File tree

2 files changed

+19
-12
lines changed

2 files changed

+19
-12
lines changed

Adamant/Modules/Chat/View/ChatViewController.swift

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -163,15 +163,19 @@ final class ChatViewController: MessagesViewController {
163163
override func viewDidAppear(_ animated: Bool) {
164164
super.viewDidAppear(animated)
165165
defer {
166-
state.isViewAppeared = true
166+
state.isFirstTimeViewAppeared = true
167+
if state.isViewDissappeared == true {
168+
state.isViewDissappeared.toggle()
169+
updateUnreadMessages()
170+
}
167171
}
168172
inputBar.isUserInteractionEnabled = true
169173
chatMessagesCollectionView.fixedBottomOffset = nil
170-
if !state.isViewAppeared {
174+
if !state.isFirstTimeViewAppeared {
171175
viewModel.presentKeyboardOnStartIfNeeded()
172176
}
173177

174-
guard isMacOS, !state.isViewAppeared else { return }
178+
guard isMacOS, !state.isFirstTimeViewAppeared else { return }
175179
focusInputBarWithoutAnimation()
176180
}
177181

@@ -190,6 +194,7 @@ final class ChatViewController: MessagesViewController {
190194
? nil
191195
: chatMessagesCollectionView.bottomOffset, collectionHeight: messagesCollectionView.contentSize.height
192196
)
197+
state.isViewDissappeared = true
193198
}
194199

195200
override func collectionView(
@@ -229,7 +234,7 @@ final class ChatViewController: MessagesViewController {
229234
updateDateHeaderIfNeeded()
230235
}
231236
guard
232-
state.isViewAppeared,
237+
state.isFirstTimeViewAppeared,
233238
scrollView.contentOffset.y <= viewModel.minOffsetForStartLoadNewMessages
234239
else { return }
235240

@@ -864,7 +869,7 @@ extension ChatViewController {
864869
}
865870

866871
fileprivate func updateDateHeaderIfNeeded() {
867-
guard state.isViewAppeared else { return }
872+
guard state.isFirstTimeViewAppeared else { return }
868873

869874
let targetY: CGFloat = targetYOffset + view.safeAreaInsets.top
870875
let visibleIndexPaths = messagesCollectionView.indexPathsForVisibleItems
@@ -1004,9 +1009,9 @@ extension ChatViewController {
10041009
finalOffset += heightDiff
10051010
}
10061011

1007-
chatMessagesCollectionView.setBottomOffset(finalOffset, safely: state.isViewAppeared)
1008-
state.isAutoScrolling = false
1009-
guard !state.isViewAppeared else { return }
1012+
chatMessagesCollectionView.setBottomOffset(finalOffset, safely: state.isFirstTimeViewAppeared)
1013+
state.isAutoScrolling = false
1014+
guard !state.isFirstTimeViewAppeared else { return }
10101015
chatMessagesCollectionView.fixedBottomOffset = chatMessagesCollectionView.bottomOffset
10111016
case let .messageId(id, scrollToBottomIfNotFound):
10121017
var index = viewModel.messages.firstIndex(where: { $0.messageId == id })
@@ -1145,7 +1150,7 @@ extension ChatViewController {
11451150
)
11461151
}
11471152

1148-
if state.isViewAppeared {
1153+
if state.isFirstTimeViewAppeared {
11491154
messageInputBar.inputTextView.becomeFirstResponder()
11501155
}
11511156
}
@@ -1179,7 +1184,7 @@ extension ChatViewController {
11791184
)
11801185
}
11811186
)
1182-
if state.isViewAppeared {
1187+
if state.isFirstTimeViewAppeared {
11831188
messageInputBar.inputTextView.becomeFirstResponder()
11841189
}
11851190
}

Adamant/Modules/Chat/View/ChatViewControllerState.swift

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import CommonKit
1111
struct ChatViewControllerState {
1212
var isMessagesLoaded = false
1313
var isScrollPositionNearlyTheBottom = true
14-
var isViewAppeared = false
14+
var isFirstTimeViewAppeared = false
1515
var scrollToUnreadBottomConstraint: Constraint?
1616
var isScrollDownButtonHidden = true
1717
var previousUnreadCount: Int = 0
@@ -20,13 +20,15 @@ struct ChatViewControllerState {
2020
var isAppActive = true
2121
var isScrollingToBottom = false
2222
var shouldScrollToNewMessages = true
23+
var isViewDissappeared = false
2324
var isInitialMessagesWereUpdated = false
25+
2426

2527
//calculation for animation, might use for something else in the future
2628
var isAnimationAllowed: Bool {
2729
isMessagesLoaded && !isAutoScrolling && !isScrollingToBottom
2830
}
2931
var canReadChat: Bool {
30-
!isAutoScrolling && isViewAppeared && (!isMacOS || isAppActive)
32+
!isAutoScrolling && isFirstTimeViewAppeared && (!isMacOS || isAppActive) && !isViewDissappeared
3133
}
3234
}

0 commit comments

Comments
 (0)