Skip to content

Commit 5c3b3ef

Browse files
committed
feat: add reaction list view
1 parent 26bce77 commit 5c3b3ef

File tree

2 files changed

+36
-19
lines changed

2 files changed

+36
-19
lines changed

package/src/components/Message/Message.tsx

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -312,9 +312,9 @@ const MessageWithContext = (props: MessagePropsWithContext) => {
312312
updateMessage,
313313
readBy,
314314
setQuotedMessage,
315-
// MessageUserReactions,
316-
// MessageUserReactionsAvatar,
317-
// MessageUserReactionsItem,
315+
MessageUserReactions,
316+
MessageUserReactionsAvatar,
317+
MessageUserReactionsItem,
318318
MessageReactionPicker,
319319
MessageActionList,
320320
MessageActionListItem,
@@ -889,11 +889,19 @@ const MessageWithContext = (props: MessagePropsWithContext) => {
889889
};
890890
}}
891891
>
892-
<MessageActionList
893-
dismissOverlay={dismissOverlay}
894-
MessageActionListItem={MessageActionListItem}
895-
messageActions={messageActions}
896-
/>
892+
{showMessageReactions ? (
893+
<MessageUserReactions
894+
message={message}
895+
MessageUserReactionsAvatar={MessageUserReactionsAvatar}
896+
MessageUserReactionsItem={MessageUserReactionsItem}
897+
/>
898+
) : (
899+
<MessageActionList
900+
dismissOverlay={dismissOverlay}
901+
MessageActionListItem={MessageActionListItem}
902+
messageActions={messageActions}
903+
/>
904+
)}
897905
</View>
898906
) : null}
899907
</Portal>

package/src/components/MessageMenu/MessageUserReactions.tsx

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ export type MessageUserReactionsProps = Partial<
3232
* The selected reaction
3333
*/
3434
selectedReaction?: string;
35+
reactionFilterEnabled?: boolean;
3536
};
3637

3738
const sort: ReactionSortBase = {
@@ -61,10 +62,11 @@ export const MessageUserReactions = (props: MessageUserReactionsProps) => {
6162
reactions: propReactions,
6263
selectedReaction: propSelectedReaction,
6364
supportedReactions: propSupportedReactions,
65+
reactionFilterEnabled = false,
6466
} = props;
6567
const reactionTypes = Object.keys(message?.reaction_groups ?? {});
6668
const [selectedReaction, setSelectedReaction] = React.useState<string | undefined>(
67-
propSelectedReaction ?? reactionTypes[0],
69+
propSelectedReaction ?? (reactionFilterEnabled ? reactionTypes[0] : undefined),
6870
);
6971
const {
7072
MessageUserReactionsAvatar: contextMessageUserReactionsAvatar,
@@ -112,6 +114,7 @@ export const MessageUserReactions = (props: MessageUserReactionsProps) => {
112114

113115
const {
114116
theme: {
117+
colors: { white },
115118
messageMenu: {
116119
userReactions: {
117120
container,
@@ -165,21 +168,27 @@ export const MessageUserReactions = (props: MessageUserReactionsProps) => {
165168
accessibilityLabel='User Reactions on long press message'
166169
style={[styles.container, container]}
167170
>
168-
<View style={[styles.reactionSelectorContainer, reactionSelectorContainer]}>
169-
<FlatList
170-
contentContainerStyle={[styles.contentContainer, contentContainer]}
171-
data={selectorReactions}
172-
horizontal
173-
keyExtractor={(item) => item.type}
174-
renderItem={renderSelectorItem}
175-
/>
176-
</View>
171+
{reactionFilterEnabled ? (
172+
<View style={[styles.reactionSelectorContainer, reactionSelectorContainer]}>
173+
<FlatList
174+
contentContainerStyle={[styles.contentContainer, contentContainer]}
175+
data={selectorReactions}
176+
horizontal
177+
keyExtractor={(item) => item.type}
178+
renderItem={renderSelectorItem}
179+
/>
180+
</View>
181+
) : null}
177182

178183
{!loading ? (
179184
<FlatList
180185
accessibilityLabel='reaction-flat-list'
181186
columnWrapperStyle={[styles.flatListColumnContainer, flatlistColumnContainer]}
182-
contentContainerStyle={[styles.flatListContainer, flatlistContainer]}
187+
contentContainerStyle={[
188+
styles.flatListContainer,
189+
{ backgroundColor: white },
190+
flatlistContainer,
191+
]}
183192
data={reactions}
184193
keyExtractor={(item) => item.id}
185194
ListHeaderComponent={renderHeader}

0 commit comments

Comments
 (0)