Skip to content

Commit 9c37c25

Browse files
authored
feat: enable swipe to reply for message bubble (#2892)
* feat: enable swipe to reply for message bubble * feat: update rn-reanimated and gesture handler peer dep * fix: add left swipe for right aligned message * fix: change MessageSwipeLeftContent to MessageSwipeContent * fix: remove Swipeable from hierarchy if the feature flag is false * fix: remove Swipeable from hierarchy if the feature flag is false * fix: remove duplicacy * fix: chnage Swipeable to custom Gesture Pan * fix: don't bump peer dep * fix: add hitslop * fix: add useMemo for the render components * fix: deps
1 parent 4df41c4 commit 9c37c25

File tree

13 files changed

+1147
-327
lines changed

13 files changed

+1147
-327
lines changed

examples/SampleApp/ios/Podfile.lock

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2164,7 +2164,7 @@ PODS:
21642164
- libwebp (~> 1.0)
21652165
- SDWebImage/Core (~> 5.10)
21662166
- SocketRocket (0.7.1)
2167-
- stream-chat-react-native (6.1.1):
2167+
- stream-chat-react-native (6.2.0):
21682168
- DoubleConversion
21692169
- glog
21702170
- hermes-engine
@@ -2576,7 +2576,7 @@ SPEC CHECKSUMS:
25762576
SDWebImage: a7f831e1a65eb5e285e3fb046a23fcfbf08e696d
25772577
SDWebImageWebPCoder: 908b83b6adda48effe7667cd2b7f78c897e5111d
25782578
SocketRocket: d4aabe649be1e368d1318fdf28a022d714d65748
2579-
stream-chat-react-native: 2291263a264596cca245917c556064949dd6b9df
2579+
stream-chat-react-native: 29f9b77cefb31c8c3d96081ea660604826bc3fb1
25802580
Yoga: 7548e4449365bf0ef60db4aefe58abff37fcabec
25812581

25822582
PODFILE CHECKSUM: 4f662370295f8f9cee909f1a4c59a614999a209d

examples/SampleApp/yarn.lock

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7952,10 +7952,10 @@ statuses@~1.5.0:
79527952
resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
79537953
integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==
79547954

7955-
stream-chat-react-native-core@6.1.1:
7956-
version "6.1.1"
7957-
resolved "https://registry.yarnpkg.com/stream-chat-react-native-core/-/stream-chat-react-native-core-6.1.1.tgz#6baf31cf1cf347f2a19f2e3afccd3d540bebd036"
7958-
integrity sha512-kzVrs4lJRJq6gxbnx3dwmF3c8dnZ/RDLZJC0LLtYOeyc2AuYypFFM9ChFzo1TwMGT5siiZByg/bLnvBCUTrNAA==
7955+
stream-chat-react-native-core@6.2.0:
7956+
version "6.2.0"
7957+
resolved "https://registry.yarnpkg.com/stream-chat-react-native-core/-/stream-chat-react-native-core-6.2.0.tgz#3ad5283b88bd92f90ead10d0b2cb29dadbe418c6"
7958+
integrity sha512-2VUF1caOs2T5lN/44DUkasw8mAKIMPkPWym0FdEDOljp2cHaE6w5A7BR2k43W/S+l/Wk63VRs3bVW+v9zYDhFA==
79597959
dependencies:
79607960
"@gorhom/bottom-sheet" "^5.0.6"
79617961
dayjs "1.10.5"

examples/TypeScriptMessaging/ios/Podfile.lock

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1991,7 +1991,7 @@ PODS:
19911991
- ReactCommon/turbomodule/core
19921992
- Yoga
19931993
- SocketRocket (0.7.1)
1994-
- stream-chat-react-native (6.1.1):
1994+
- stream-chat-react-native (6.2.0):
19951995
- DoubleConversion
19961996
- glog
19971997
- hermes-engine
@@ -2344,7 +2344,7 @@ SPEC CHECKSUMS:
23442344
RNShare: 2e17abd938a8aeb0e0739e35ef9795891d046fb9
23452345
RNSVG: 030717ff82ea8f2117347c2fcf52a2d1eafba9ba
23462346
SocketRocket: d4aabe649be1e368d1318fdf28a022d714d65748
2347-
stream-chat-react-native: 09b944db6667592cdd5342ef49bb098a5cc41438
2347+
stream-chat-react-native: e2f9bbc7dce8c4bb14bcfec1245be978db123243
23482348
Yoga: db69236006b8b1c6d55ab453390c882306cbf219
23492349

23502350
PODFILE CHECKSUM: 6b7a4b74915b42bfe4ffddaf67cbf5e7a2bfeab3

examples/TypeScriptMessaging/yarn.lock

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6807,10 +6807,10 @@ statuses@~1.5.0:
68076807
resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
68086808
integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==
68096809

6810-
stream-chat-react-native-core@6.1.1:
6811-
version "6.1.1"
6812-
resolved "https://registry.yarnpkg.com/stream-chat-react-native-core/-/stream-chat-react-native-core-6.1.1.tgz#6baf31cf1cf347f2a19f2e3afccd3d540bebd036"
6813-
integrity sha512-kzVrs4lJRJq6gxbnx3dwmF3c8dnZ/RDLZJC0LLtYOeyc2AuYypFFM9ChFzo1TwMGT5siiZByg/bLnvBCUTrNAA==
6810+
stream-chat-react-native-core@6.2.0:
6811+
version "6.2.0"
6812+
resolved "https://registry.yarnpkg.com/stream-chat-react-native-core/-/stream-chat-react-native-core-6.2.0.tgz#3ad5283b88bd92f90ead10d0b2cb29dadbe418c6"
6813+
integrity sha512-2VUF1caOs2T5lN/44DUkasw8mAKIMPkPWym0FdEDOljp2cHaE6w5A7BR2k43W/S+l/Wk63VRs3bVW+v9zYDhFA==
68146814
dependencies:
68156815
"@gorhom/bottom-sheet" "^5.0.6"
68166816
dayjs "1.10.5"

package/expo-package/yarn.lock

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5113,10 +5113,10 @@ [email protected], stream-buffers@~2.2.0:
51135113
resolved "https://registry.yarnpkg.com/stream-buffers/-/stream-buffers-2.2.0.tgz#91d5f5130d1cef96dcfa7f726945188741d09ee4"
51145114
integrity sha512-uyQK/mx5QjHun80FLJTfaWE7JtwfRMKBLkMne6udYOmvH0CawotVa7TfgYHzAnpphn4+TweIx1QKMnRIbipmUg==
51155115

5116-
stream-chat-react-native-core@6.1.1:
5117-
version "6.1.1"
5118-
resolved "https://registry.yarnpkg.com/stream-chat-react-native-core/-/stream-chat-react-native-core-6.1.1.tgz#6baf31cf1cf347f2a19f2e3afccd3d540bebd036"
5119-
integrity sha512-kzVrs4lJRJq6gxbnx3dwmF3c8dnZ/RDLZJC0LLtYOeyc2AuYypFFM9ChFzo1TwMGT5siiZByg/bLnvBCUTrNAA==
5116+
stream-chat-react-native-core@6.2.0:
5117+
version "6.2.0"
5118+
resolved "https://registry.yarnpkg.com/stream-chat-react-native-core/-/stream-chat-react-native-core-6.2.0.tgz#3ad5283b88bd92f90ead10d0b2cb29dadbe418c6"
5119+
integrity sha512-2VUF1caOs2T5lN/44DUkasw8mAKIMPkPWym0FdEDOljp2cHaE6w5A7BR2k43W/S+l/Wk63VRs3bVW+v9zYDhFA==
51205120
dependencies:
51215121
"@gorhom/bottom-sheet" "^5.0.6"
51225122
dayjs "1.10.5"

package/native-package/yarn.lock

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4242,10 +4242,10 @@ statuses@~1.5.0:
42424242
resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
42434243
integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==
42444244

4245-
stream-chat-react-native-core@6.1.1:
4246-
version "6.1.1"
4247-
resolved "https://registry.yarnpkg.com/stream-chat-react-native-core/-/stream-chat-react-native-core-6.1.1.tgz#6baf31cf1cf347f2a19f2e3afccd3d540bebd036"
4248-
integrity sha512-kzVrs4lJRJq6gxbnx3dwmF3c8dnZ/RDLZJC0LLtYOeyc2AuYypFFM9ChFzo1TwMGT5siiZByg/bLnvBCUTrNAA==
4245+
stream-chat-react-native-core@6.2.0:
4246+
version "6.2.0"
4247+
resolved "https://registry.yarnpkg.com/stream-chat-react-native-core/-/stream-chat-react-native-core-6.2.0.tgz#3ad5283b88bd92f90ead10d0b2cb29dadbe418c6"
4248+
integrity sha512-2VUF1caOs2T5lN/44DUkasw8mAKIMPkPWym0FdEDOljp2cHaE6w5A7BR2k43W/S+l/Wk63VRs3bVW+v9zYDhFA==
42494249
dependencies:
42504250
"@gorhom/bottom-sheet" "^5.0.6"
42514251
dayjs "1.10.5"

package/src/components/Channel/Channel.tsx

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,7 @@ import { MessageReplies as MessageRepliesDefault } from '../Message/MessageSimpl
141141
import { MessageRepliesAvatars as MessageRepliesAvatarsDefault } from '../Message/MessageSimple/MessageRepliesAvatars';
142142
import { MessageSimple as MessageSimpleDefault } from '../Message/MessageSimple/MessageSimple';
143143
import { MessageStatus as MessageStatusDefault } from '../Message/MessageSimple/MessageStatus';
144+
import { MessageSwipeContent as MessageSwipeContentDefault } from '../Message/MessageSimple/MessageSwipeContent';
144145
import { MessageTimestamp as MessageTimestampDefault } from '../Message/MessageSimple/MessageTimestamp';
145146
import { ReactionListBottom as ReactionListBottomDefault } from '../Message/MessageSimple/ReactionList/ReactionListBottom';
146147
import { ReactionListTop as ReactionListTopDefault } from '../Message/MessageSimple/ReactionList/ReactionListTop';
@@ -295,6 +296,7 @@ export type ChannelPropsWithContext<
295296
| 'deletedMessagesVisibilityType'
296297
| 'disableTypingIndicator'
297298
| 'dismissKeyboardOnMessageTouch'
299+
| 'enableSwipeToReply'
298300
| 'FileAttachment'
299301
| 'FileAttachmentIcon'
300302
| 'FileAttachmentGroup'
@@ -348,6 +350,8 @@ export type ChannelPropsWithContext<
348350
| 'messageTextNumberOfLines'
349351
| 'MessageTimestamp'
350352
| 'MessageUserReactions'
353+
| 'MessageSwipeContent'
354+
| 'messageSwipeToReplyHitSlop'
351355
| 'myMessageTheme'
352356
| 'onLongPressMessage'
353357
| 'onPressInMessage'
@@ -528,6 +532,7 @@ const ChannelWithContext = <
528532
EmptyStateIndicator = EmptyStateIndicatorDefault,
529533
enableMessageGroupingByUser = true,
530534
enableOfflineSupport,
535+
enableSwipeToReply = true,
531536
enforceUniqueReaction = false,
532537
FileAttachment = FileAttachmentDefault,
533538
FileAttachmentGroup = FileAttachmentGroupDefault,
@@ -620,6 +625,8 @@ const ChannelWithContext = <
620625
MessageRepliesAvatars = MessageRepliesAvatarsDefault,
621626
MessageSimple = MessageSimpleDefault,
622627
MessageStatus = MessageStatusDefault,
628+
MessageSwipeContent = MessageSwipeContentDefault,
629+
messageSwipeToReplyHitSlop,
623630
MessageSystem = MessageSystemDefault,
624631
MessageText,
625632
messageTextNumberOfLines,
@@ -1811,13 +1818,15 @@ const ChannelWithContext = <
18111818
CardFooter,
18121819
CardHeader,
18131820
channelId,
1821+
clearQuotedMessageState,
18141822
DateHeader,
18151823
deletedMessagesVisibilityType,
18161824
deleteMessage,
18171825
deleteReaction,
18181826
disableTypingIndicator,
18191827
dismissKeyboardOnMessageTouch,
18201828
enableMessageGroupingByUser,
1829+
enableSwipeToReply,
18211830
FileAttachment,
18221831
FileAttachmentGroup,
18231832
FileAttachmentIcon,
@@ -1871,6 +1880,8 @@ const ChannelWithContext = <
18711880
MessageRepliesAvatars,
18721881
MessageSimple,
18731882
MessageStatus,
1883+
MessageSwipeContent,
1884+
messageSwipeToReplyHitSlop,
18741885
MessageSystem,
18751886
MessageText,
18761887
messageTextNumberOfLines,

package/src/components/Channel/hooks/useCreateMessagesContext.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,15 @@ export const useCreateMessagesContext = <
1515
CardFooter,
1616
CardHeader,
1717
channelId,
18+
clearQuotedMessageState,
1819
DateHeader,
1920
deletedMessagesVisibilityType,
2021
deleteMessage,
2122
deleteReaction,
2223
disableTypingIndicator,
2324
dismissKeyboardOnMessageTouch,
2425
enableMessageGroupingByUser,
26+
enableSwipeToReply,
2527
FileAttachment,
2628
FileAttachmentGroup,
2729
FileAttachmentIcon,
@@ -74,6 +76,8 @@ export const useCreateMessagesContext = <
7476
MessageRepliesAvatars,
7577
MessageSimple,
7678
MessageStatus,
79+
MessageSwipeContent,
80+
messageSwipeToReplyHitSlop,
7781
MessageSystem,
7882
MessageText,
7983
messageTextNumberOfLines,
@@ -128,13 +132,15 @@ export const useCreateMessagesContext = <
128132
CardCover,
129133
CardFooter,
130134
CardHeader,
135+
clearQuotedMessageState,
131136
DateHeader,
132137
deletedMessagesVisibilityType,
133138
deleteMessage,
134139
deleteReaction,
135140
disableTypingIndicator,
136141
dismissKeyboardOnMessageTouch,
137142
enableMessageGroupingByUser,
143+
enableSwipeToReply,
138144
FileAttachment,
139145
FileAttachmentGroup,
140146
FileAttachmentIcon,
@@ -187,6 +193,8 @@ export const useCreateMessagesContext = <
187193
MessageRepliesAvatars,
188194
MessageSimple,
189195
MessageStatus,
196+
MessageSwipeContent,
197+
messageSwipeToReplyHitSlop,
190198
MessageSystem,
191199
MessageText,
192200
messageTextNumberOfLines,

0 commit comments

Comments
 (0)