Skip to content

Commit 5a6bc4c

Browse files
authored
Add resignsFirstResponderOnScrollDown to MessageListConfig (#769)
1 parent f08b5fc commit 5a6bc4c

File tree

3 files changed

+7
-1
lines changed

3 files changed

+7
-1
lines changed

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
99
### 🔄 Changed
1010
- Uploading a HEIC photo from the library is now converted to JPEG for better compatibility [#767](https://github.com/GetStream/stream-chat-swiftui/pull/767)
1111

12+
### ✅ Added
13+
- Add `resignsFirstResponderOnScrollDown` to `MessageListConfig` [#769](https://github.com/GetStream/stream-chat-swiftui/pull/769)
14+
1215
# [4.73.0](https://github.com/GetStream/stream-chat-swiftui/releases/tag/4.73.0)
1316
_February 28, 2025_
1417

Sources/StreamChatSwiftUI/ChatChannel/MessageList/MessageListConfig.swift

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ public struct MessageListConfig {
1919
messagePopoverEnabled: Bool = true,
2020
doubleTapOverlayEnabled: Bool = false,
2121
becomesFirstResponderOnOpen: Bool = false,
22+
resignsFirstResponderOnScrollDown: Bool = true,
2223
updateChannelsFromMessageList: Bool = false,
2324
maxTimeIntervalBetweenMessagesInGroup: TimeInterval = 60,
2425
cacheSizeOnChatDismiss: Int = 1024 * 1024 * 100,
@@ -45,6 +46,7 @@ public struct MessageListConfig {
4546
self.messagePopoverEnabled = messagePopoverEnabled
4647
self.doubleTapOverlayEnabled = doubleTapOverlayEnabled
4748
self.becomesFirstResponderOnOpen = becomesFirstResponderOnOpen
49+
self.resignsFirstResponderOnScrollDown = resignsFirstResponderOnScrollDown
4850
self.updateChannelsFromMessageList = updateChannelsFromMessageList
4951
self.maxTimeIntervalBetweenMessagesInGroup = maxTimeIntervalBetweenMessagesInGroup
5052
self.cacheSizeOnChatDismiss = cacheSizeOnChatDismiss
@@ -72,6 +74,7 @@ public struct MessageListConfig {
7274
public let messagePopoverEnabled: Bool
7375
public let doubleTapOverlayEnabled: Bool
7476
public let becomesFirstResponderOnOpen: Bool
77+
public let resignsFirstResponderOnScrollDown: Bool
7578
public let updateChannelsFromMessageList: Bool
7679
public let maxTimeIntervalBetweenMessagesInGroup: TimeInterval
7780
public let cacheSizeOnChatDismiss: Int

Sources/StreamChatSwiftUI/ChatChannel/MessageList/MessageListView.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,7 @@ public struct MessageListView<Factory: ViewFactory>: View, KeyboardReadable {
238238
if scrollButtonShown != showScrollToLatestButton {
239239
showScrollToLatestButton = scrollButtonShown
240240
}
241-
if keyboardShown && diff < -20 {
241+
if messageListConfig.resignsFirstResponderOnScrollDown && keyboardShown && diff < -20 {
242242
keyboardShown = false
243243
resignFirstResponder()
244244
}

0 commit comments

Comments
 (0)