Skip to content

Commit fe8c6d1

Browse files
committed
fix: further optimize memo checks
1 parent 40bac0e commit fe8c6d1

File tree

2 files changed

+17
-18
lines changed

2 files changed

+17
-18
lines changed

examples/SampleApp/App.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { DevSettings, LogBox, Platform, useColorScheme } from 'react-native';
33
import { createDrawerNavigator } from '@react-navigation/drawer';
44
import { DarkTheme, DefaultTheme, NavigationContainer } from '@react-navigation/native';
55
import { createStackNavigator } from '@react-navigation/stack';
6-
import { SafeAreaProvider, useSafeAreaInsets } from 'react-native-safe-area-context';
6+
import { SafeAreaProvider } from 'react-native-safe-area-context';
77
import {
88
Chat,
99
OverlayProvider,

package/src/utils/utils.ts

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -304,21 +304,23 @@ export const checkMessageEquality = (
304304
prevMessage?: LocalMessage,
305305
nextMessage?: LocalMessage,
306306
): boolean => {
307-
if (!prevMessage || !nextMessage) {
307+
const prevMessageExists = !!prevMessage;
308+
const nextMessageExists = !!nextMessage;
309+
if (!prevMessageExists && !nextMessageExists) {
310+
return true;
311+
}
312+
if (prevMessageExists !== nextMessageExists) {
308313
return false;
309314
}
310-
const isPrevMessageTypeDeleted = prevMessage.type === 'deleted';
311-
const isNextMessageTypeDeleted = nextMessage.type === 'deleted';
312315
const messageEqual =
313-
isPrevMessageTypeDeleted === isNextMessageTypeDeleted &&
314-
prevMessage.status === nextMessage.status &&
315-
prevMessage.type === nextMessage.type &&
316-
prevMessage.text === nextMessage.text &&
317-
prevMessage.pinned === nextMessage.pinned &&
318-
prevMessage.i18n === nextMessage.i18n &&
319-
prevMessage.reply_count === nextMessage.reply_count &&
320-
`${prevMessage?.updated_at}` === `${nextMessage?.updated_at}` &&
321-
`${prevMessage?.deleted_at}` === `${nextMessage?.deleted_at}`;
316+
prevMessage?.status === nextMessage?.status &&
317+
prevMessage?.type === nextMessage?.type &&
318+
prevMessage?.text === nextMessage?.text &&
319+
prevMessage?.pinned === nextMessage?.pinned &&
320+
prevMessage?.i18n === nextMessage?.i18n &&
321+
prevMessage?.reply_count === nextMessage?.reply_count &&
322+
prevMessage?.updated_at?.getTime?.() === nextMessage?.updated_at?.getTime?.() &&
323+
prevMessage?.deleted_at?.getTime?.() === nextMessage?.deleted_at?.getTime?.();
322324

323325
return messageEqual;
324326
};
@@ -342,14 +344,11 @@ export const checkQuotedMessageEquality = (
342344
if (prevQuotedMessageExists !== nextQuotedMessageExists) {
343345
return false;
344346
}
345-
const isPrevQuotedMessageTypeDeleted = prevQuotedMessage?.type === 'deleted';
346-
const isNextQuotedMessageTypeDeleted = nextQuotedMessage?.type === 'deleted';
347347
const quotedMessageEqual =
348-
isPrevQuotedMessageTypeDeleted === isNextQuotedMessageTypeDeleted &&
349348
prevQuotedMessage?.type === nextQuotedMessage?.type &&
350349
prevQuotedMessage?.text === nextQuotedMessage?.text &&
351-
`${prevQuotedMessage?.updated_at}` === `${nextQuotedMessage?.updated_at}` &&
352-
`${prevQuotedMessage?.deleted_at}` === `${nextQuotedMessage?.deleted_at}`;
350+
prevQuotedMessage?.updated_at?.getTime?.() === nextQuotedMessage?.updated_at?.getTime?.() &&
351+
prevQuotedMessage?.deleted_at?.getTime?.() === nextQuotedMessage?.deleted_at?.getTime?.();
353352

354353
return quotedMessageEqual;
355354
};

0 commit comments

Comments
 (0)