Skip to content

Commit 239c418

Browse files
committed
Merge branch 'master' into review-fixes
2 parents 56f8239 + 92f891e commit 239c418

File tree

10 files changed

+88
-67
lines changed

10 files changed

+88
-67
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@
7171
"path": "0.12.7",
7272
"react-art": "^16.8.6",
7373
"react-native-markdown-package": "1.8.1",
74-
"stream-chat": "3.0.0"
74+
"stream-chat": "3.1.2"
7575
},
7676
"peerDependencies": {
7777
"react": "^16.8.6",

src/components/Message/Message.tsx

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ import {
5151
} from '../../contexts/messageOverlayContext/MessageOverlayContext';
5252
import {
5353
MessagesContextValue,
54+
MessagesProvider,
5455
useMessagesContext,
5556
} from '../../contexts/messagesContext/MessagesContext';
5657
import {
@@ -141,6 +142,8 @@ export type MessagePropsWithContext<
141142
| 'isAdmin'
142143
| 'isModerator'
143144
| 'isOwner'
145+
| 'members'
146+
| 'readEventsEnabled'
144147
> &
145148
Pick<ChatContextValue<At, Ch, Co, Ev, Me, Re, Us>, 'client'> &
146149
Pick<KeyboardContextValue, 'dismissKeyboard'> &
@@ -295,6 +298,7 @@ const MessageWithContext = <
295298
isModerator,
296299
isOwner,
297300
lastReceivedId,
301+
members,
298302
message,
299303
messageActions: messageActionsProp,
300304
messageContentOrder: messageContentOrderProp,
@@ -310,6 +314,7 @@ const MessageWithContext = <
310314
OverlayReactionList,
311315
preventPress,
312316
reactionsEnabled,
317+
readEventsEnabled,
313318
removeMessage,
314319
repliesEnabled,
315320
reply: replyProp,
@@ -949,6 +954,8 @@ const MessageWithContext = <
949954
alignment,
950955
animatedLongPress,
951956
canModifyMessage,
957+
channel,
958+
disabled,
952959
files: attachments.files,
953960
groupStyles: forwardedGroupStyles,
954961
handleAction,
@@ -959,6 +966,7 @@ const MessageWithContext = <
959966
forwardedGroupStyles?.[0] === 'single' ||
960967
forwardedGroupStyles?.[0] === 'bottom',
961968
lastReceivedId,
969+
members,
962970
message,
963971
messageContentOrder,
964972
onLongPress: animatedLongPress
@@ -981,6 +989,7 @@ const MessageWithContext = <
981989
otherAttachments: attachments.other,
982990
preventPress,
983991
reactions,
992+
readEventsEnabled,
984993
showAvatar,
985994
showMessageOverlay,
986995
showMessageStatus:
@@ -1063,9 +1072,18 @@ const MessageWithContext = <
10631072
targetedStyle,
10641073
]}
10651074
/>
1066-
<MessageProvider value={messageContext}>
1067-
<MessageSimple />
1068-
</MessageProvider>
1075+
{/**
1076+
* MessagesProvider is here to prevent and issue where FlatList
1077+
* and context re-rendering causes memoization to be skipped.
1078+
* We will separate messages to another context and keep the
1079+
* components currently in the same context apart to remove
1080+
* the need for this in a future PR.
1081+
*/}
1082+
<MessagesProvider value={messagesContext}>
1083+
<MessageProvider value={messageContext}>
1084+
<MessageSimple />
1085+
</MessageProvider>
1086+
</MessagesProvider>
10691087
</Animated.View>
10701088
</TapGestureHandler>
10711089
</Animated.View>
@@ -1221,6 +1239,8 @@ export const Message = <
12211239
isAdmin,
12221240
isModerator,
12231241
isOwner,
1242+
members,
1243+
readEventsEnabled,
12241244
} = useChannelContext<At, Ch, Co, Ev, Me, Re, Us>();
12251245
const { client } = useChatContext<At, Ch, Co, Ev, Me, Re, Us>();
12261246
const { dismissKeyboard } = useKeyboardContext();
@@ -1242,8 +1262,10 @@ export const Message = <
12421262
isAdmin,
12431263
isModerator,
12441264
isOwner,
1265+
members,
12451266
messagesContext,
12461267
openThread,
1268+
readEventsEnabled,
12471269
setData,
12481270
setOverlay,
12491271
t,

src/components/Message/MessageSimple/MessageContent.tsx

Lines changed: 19 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,6 @@ import merge from 'lodash/merge';
99

1010
import { MessageTextContainer } from './MessageTextContainer';
1111

12-
import {
13-
ChannelContextValue,
14-
useChannelContext,
15-
} from '../../../contexts/channelContext/ChannelContext';
1612
import {
1713
MessageContextValue,
1814
useMessageContext,
@@ -83,26 +79,24 @@ export type MessageContentPropsWithContext<
8379
Re extends UnknownType = DefaultReactionType,
8480
Us extends UnknownType = DefaultUserType
8581
> = Pick<
86-
ChannelContextValue<At, Ch, Co, Ev, Me, Re, Us>,
87-
'disabled' | 'members'
82+
MessageContextValue<At, Ch, Co, Ev, Me, Re, Us>,
83+
| 'alignment'
84+
| 'disabled'
85+
| 'groupStyles'
86+
| 'hasReactions'
87+
| 'isMyMessage'
88+
| 'lastGroupMessage'
89+
| 'members'
90+
| 'message'
91+
| 'messageContentOrder'
92+
| 'onLongPress'
93+
| 'onlyEmojis'
94+
| 'onPress'
95+
| 'otherAttachments'
96+
| 'preventPress'
97+
| 'showMessageStatus'
98+
| 'threadList'
8899
> &
89-
Pick<
90-
MessageContextValue<At, Ch, Co, Ev, Me, Re, Us>,
91-
| 'alignment'
92-
| 'groupStyles'
93-
| 'hasReactions'
94-
| 'isMyMessage'
95-
| 'lastGroupMessage'
96-
| 'message'
97-
| 'messageContentOrder'
98-
| 'onLongPress'
99-
| 'onlyEmojis'
100-
| 'onPress'
101-
| 'otherAttachments'
102-
| 'preventPress'
103-
| 'showMessageStatus'
104-
| 'threadList'
105-
> &
106100
Pick<
107101
MessagesContextValue<At, Ch, Co, Ev, Me, Re, Us>,
108102
| 'additionalTouchableProps'
@@ -580,13 +574,14 @@ export const MessageContent = <
580574
>(
581575
props: MessageContentProps<At, Ch, Co, Ev, Me, Re, Us>,
582576
) => {
583-
const { disabled, members } = useChannelContext<At, Ch, Co, Ev, Me, Re, Us>();
584577
const {
585578
alignment,
579+
disabled,
586580
groupStyles,
587581
hasReactions,
588582
isMyMessage,
589583
lastGroupMessage,
584+
members,
590585
message,
591586
messageContentOrder,
592587
onLongPress,

src/components/Message/MessageSimple/MessageSimple.tsx

Lines changed: 11 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,6 @@
11
import React, { useState } from 'react';
22
import { StyleSheet, View } from 'react-native';
33

4-
import {
5-
ChannelContextValue,
6-
useChannelContext,
7-
} from '../../../contexts/channelContext/ChannelContext';
84
import {
95
MessageContextValue,
106
useMessageContext,
@@ -41,11 +37,10 @@ export type MessageSimplePropsWithContext<
4137
Me extends UnknownType = DefaultMessageType,
4238
Re extends UnknownType = DefaultReactionType,
4339
Us extends UnknownType = DefaultUserType
44-
> = Pick<ChannelContextValue<At, Ch, Co, Ev, Me, Re, Us>, 'channel'> &
45-
Pick<
46-
MessageContextValue<At, Ch, Co, Ev, Me, Re, Us>,
47-
'alignment' | 'groupStyles' | 'hasReactions' | 'message'
48-
> &
40+
> = Pick<
41+
MessageContextValue<At, Ch, Co, Ev, Me, Re, Us>,
42+
'alignment' | 'channel' | 'groupStyles' | 'hasReactions' | 'message'
43+
> &
4944
Pick<
5045
MessagesContextValue<At, Ch, Co, Ev, Me, Re, Us>,
5146
'MessageAvatar' | 'MessageContent' | 'ReactionList'
@@ -217,16 +212,13 @@ export const MessageSimple = <
217212
>(
218213
props: MessageSimpleProps<At, Ch, Co, Ev, Me, Re, Us>,
219214
) => {
220-
const { channel } = useChannelContext<At, Ch, Co, Ev, Me, Re, Us>();
221-
const { alignment, groupStyles, hasReactions, message } = useMessageContext<
222-
At,
223-
Ch,
224-
Co,
225-
Ev,
226-
Me,
227-
Re,
228-
Us
229-
>();
215+
const {
216+
alignment,
217+
channel,
218+
groupStyles,
219+
hasReactions,
220+
message,
221+
} = useMessageContext<At, Ch, Co, Ev, Me, Re, Us>();
230222
const { MessageAvatar, MessageContent, ReactionList } = useMessagesContext<
231223
At,
232224
Ch,

src/components/Message/MessageSimple/MessageStatus.tsx

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,6 @@ import { StyleSheet, Text, View } from 'react-native';
33

44
import { isMessagesWithStylesAndReadBy } from '../../MessageList/hooks/useMessageList';
55

6-
import {
7-
ChannelContextValue,
8-
useChannelContext,
9-
} from '../../../contexts/channelContext/ChannelContext';
106
import {
117
MessageContextValue,
128
useMessageContext,
@@ -51,9 +47,8 @@ export type MessageStatusPropsWithContext<
5147
Us extends DefaultUserType = DefaultUserType
5248
> = Pick<
5349
MessageContextValue<At, Ch, Co, Ev, Me, Re, Us>,
54-
'message' | 'threadList'
55-
> &
56-
Pick<ChannelContextValue<At, Ch, Co, Ev, Me, Re, Us>, 'readEventsEnabled'>;
50+
'message' | 'readEventsEnabled' | 'threadList'
51+
>;
5752

5853
const MessageStatusWithContext = <
5954
At extends UnknownType = DefaultAttachmentType,
@@ -191,8 +186,7 @@ export const MessageStatus = <
191186
>(
192187
props: MessageStatusProps<At, Ch, Co, Ev, Me, Re, Us>,
193188
) => {
194-
const { readEventsEnabled } = useChannelContext<At, Ch, Co, Ev, Me, Re, Us>();
195-
const { message, threadList } = useMessageContext<
189+
const { message, readEventsEnabled, threadList } = useMessageContext<
196190
At,
197191
Ch,
198192
Co,

src/components/Message/MessageSimple/MessageTextContainer.tsx

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,6 @@ export type MessageTextContainerPropsWithContext<
6363
MessagesContextValue<At, Ch, Co, Ev, Me, Re, Us>,
6464
'markdownRules' | 'MessageText'
6565
> & {
66-
theme: { theme: Theme };
6766
markdownStyles?: MarkdownStyle;
6867
styles?: Partial<{
6968
textContainer: StyleProp<ViewStyle>;
@@ -81,6 +80,8 @@ const MessageTextContainerWithContext = <
8180
>(
8281
props: MessageTextContainerPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,
8382
) => {
83+
const theme = useTheme();
84+
8485
const {
8586
markdownRules,
8687
markdownStyles: markdownStylesProp = {},
@@ -89,7 +90,6 @@ const MessageTextContainerWithContext = <
8990
onLongPress,
9091
onlyEmojis,
9192
styles: stylesProp = {},
92-
theme,
9393
} = props;
9494

9595
const {
@@ -210,7 +210,6 @@ export const MessageTextContainer = <
210210
Re,
211211
Us
212212
>();
213-
const theme = useTheme();
214213

215214
return (
216215
<MemoizedMessageTextContainer
@@ -220,7 +219,6 @@ export const MessageTextContainer = <
220219
MessageText,
221220
onLongPress,
222221
onlyEmojis,
223-
theme,
224222
}}
225223
{...props}
226224
/>

src/components/Message/hooks/useCreateMessageContext.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ export const useCreateMessageContext = <
2727
alignment,
2828
animatedLongPress,
2929
canModifyMessage,
30+
channel,
31+
disabled,
3032
files,
3133
groupStyles,
3234
handleAction,
@@ -35,6 +37,7 @@ export const useCreateMessageContext = <
3537
isMyMessage,
3638
lastGroupMessage,
3739
lastReceivedId,
40+
members,
3841
message,
3942
messageContentOrder,
4043
onLongPress,
@@ -44,6 +47,7 @@ export const useCreateMessageContext = <
4447
otherAttachments,
4548
preventPress,
4649
reactions,
50+
readEventsEnabled,
4751
showAvatar,
4852
showMessageOverlay,
4953
showMessageStatus,
@@ -62,6 +66,7 @@ export const useCreateMessageContext = <
6266
}${message.updated_at}${message.deleted_at}${readBy}${message.status}${
6367
message.type
6468
}${message.text}${message.reply_count}`;
69+
const membersValue = JSON.stringify(members);
6570

6671
const messageContext: MessageContextValue<
6772
At,
@@ -77,6 +82,8 @@ export const useCreateMessageContext = <
7782
alignment,
7883
animatedLongPress,
7984
canModifyMessage,
85+
channel,
86+
disabled,
8087
files,
8188
groupStyles,
8289
handleAction,
@@ -85,6 +92,7 @@ export const useCreateMessageContext = <
8592
isMyMessage,
8693
lastGroupMessage,
8794
lastReceivedId,
95+
members,
8896
message,
8997
messageContentOrder,
9098
onLongPress,
@@ -94,6 +102,7 @@ export const useCreateMessageContext = <
94102
otherAttachments,
95103
preventPress,
96104
reactions,
105+
readEventsEnabled,
97106
showAvatar,
98107
showMessageOverlay,
99108
showMessageStatus,
@@ -103,12 +112,15 @@ export const useCreateMessageContext = <
103112
actionsEnabled,
104113
alignment,
105114
animatedLongPress,
115+
disabled,
106116
groupStylesLength,
107117
hasReactions,
108118
lastGroupMessage,
109119
lastReceivedId,
120+
membersValue,
110121
messageValue,
111122
reactionsValue,
123+
readEventsEnabled,
112124
showAvatar,
113125
showMessageStatus,
114126
threadList,

0 commit comments

Comments
 (0)