Skip to content

Commit e032bc6

Browse files
committed
fix: issues
1 parent 4f10808 commit e032bc6

3 files changed

Lines changed: 29 additions & 52 deletions

File tree

package/src/components/Message/MessageSimple/Headers/MessageReminderHeader.tsx

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

55
import { ReminderState } from 'stream-chat';
66

7-
import {
8-
MessageContextValue,
9-
useMessageContext,
10-
} from '../../../../contexts/messageContext/MessageContext';
7+
import { useMessageContext } from '../../../../contexts/messageContext/MessageContext';
118
import { useTheme } from '../../../../contexts/themeContext/ThemeContext';
129
import { useTranslationContext } from '../../../../contexts/translationContext/TranslationContext';
1310
import { useMessageReminder } from '../../../../hooks/useMessageReminder';
@@ -19,7 +16,7 @@ const reminderStateSelector = (state: ReminderState) => ({
1916
timeLeftMs: state.timeLeftMs,
2017
});
2118

22-
type MessageReminderHeaderPropsWithContext = Pick<MessageContextValue, 'message'> & {
19+
type MessageReminderHeaderPropsWithContext = {
2320
timeLeftMs?: number;
2421
isReminderTimeLeft: boolean;
2522
};
@@ -48,31 +45,6 @@ const MessageReminderHeaderWithContext = (props: MessageReminderHeaderPropsWithC
4845
);
4946
};
5047

51-
const areEqual = (
52-
prevProps: MessageReminderHeaderPropsWithContext,
53-
nextProps: MessageReminderHeaderPropsWithContext,
54-
) => {
55-
const { timeLeftMs: prevTimeLeftMs, isReminderTimeLeft: prevIsReminderTimeLeft } = prevProps;
56-
const { timeLeftMs: nextTimeLeftMs, isReminderTimeLeft: nextIsReminderTimeLeft } = nextProps;
57-
58-
const timeLeftMsEqual = prevTimeLeftMs === nextTimeLeftMs;
59-
if (!timeLeftMsEqual) {
60-
return false;
61-
}
62-
63-
const isReminderTimeLeftEqual = prevIsReminderTimeLeft === nextIsReminderTimeLeft;
64-
if (!isReminderTimeLeftEqual) {
65-
return false;
66-
}
67-
68-
return true;
69-
};
70-
71-
const MemoizedMessageReminderHeader = React.memo(
72-
MessageReminderHeaderWithContext,
73-
areEqual,
74-
) as typeof MessageReminderHeaderWithContext;
75-
7648
export type MessageReminderHeaderProps = Partial<MessageReminderHeaderPropsWithContext>;
7749

7850
export const MessageReminderHeader = (props: MessageReminderHeaderProps) => {
@@ -83,8 +55,7 @@ export const MessageReminderHeader = (props: MessageReminderHeaderProps) => {
8355
const isReminderTimeLeft = !!(timeLeftMs && timeLeftMs > 0);
8456

8557
return (
86-
<MemoizedMessageReminderHeader
87-
message={message}
58+
<MessageReminderHeaderWithContext
8859
timeLeftMs={timeLeftMs ?? 0}
8960
isReminderTimeLeft={isReminderTimeLeft}
9061
{...props}

package/src/components/Message/MessageSimple/Headers/SentToChannelHeader.tsx

Lines changed: 24 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import React, { useMemo } from 'react';
1+
import React, { useCallback, useMemo } from 'react';
22

33
import { Pressable, StyleSheet, Text, View } from 'react-native';
44

@@ -34,30 +34,34 @@ const SentToChannelHeaderWithContext = (props: SentToChannelHeaderPropsWithConte
3434
const { t } = useTranslationContext();
3535
const styles = useStyles();
3636

37-
const queryParentMessageAndMoveToTargetedMessage = () => {
38-
return channel
39-
.getClient()
40-
.search({ cid: channel.cid }, { id: message.parent_id })
41-
.then(({ results }) => {
42-
if (!results.length) {
43-
return;
44-
}
45-
const targetMessage = formatMessage(results[0].message);
46-
onThreadSelect?.(targetMessage, message.id);
47-
})
48-
.catch((error) => {
49-
console.error('Error querying parent message:', error);
50-
});
51-
};
52-
53-
const handleOnPress = async () => {
37+
const handleOnPress = useCallback(async () => {
5438
if (!threadList) {
55-
await queryParentMessageAndMoveToTargetedMessage();
39+
return await channel
40+
.getClient()
41+
.search({ cid: channel.cid }, { id: message.parent_id })
42+
.then(({ results }) => {
43+
if (!results.length) {
44+
return;
45+
}
46+
const targetMessage = formatMessage(results[0].message);
47+
onThreadSelect?.(targetMessage, message.id);
48+
})
49+
.catch((error) => {
50+
console.error('Error querying parent message:', error);
51+
});
5652
} else {
5753
setTargetedMessage(message.id);
5854
onBackPressThread?.(message.id);
5955
}
60-
};
56+
}, [
57+
channel,
58+
message.id,
59+
message.parent_id,
60+
onBackPressThread,
61+
onThreadSelect,
62+
setTargetedMessage,
63+
threadList,
64+
]);
6165

6266
return (
6367
<View accessibilityLabel='Message Saved For Later Header' style={styles.container}>

package/src/contexts/messageContext/MessageContext.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,8 @@ export type MessageContextValue = {
124124
* @param message - The message to select
125125
* @param targetedMessageId - The id of the targeted message
126126
* @returns void
127+
*
128+
* TODO: V9: Change function params to an object
127129
*/
128130
onThreadSelect?: (message: LocalMessage, targetedMessageId?: string) => void;
129131
} & Pick<ChannelContextValue, 'channel' | 'members'> &

0 commit comments

Comments
 (0)