From 69b9394a181d73b4617df00e12493560ed29dc7b Mon Sep 17 00:00:00 2001 From: Alexander Zinchuk Date: Tue, 3 Aug 2021 19:03:08 +0300 Subject: [PATCH] [Perf] Do not load emoji keywords on each chat opening --- src/components/main/Main.tsx | 18 ++++++++++++++---- src/components/middle/composer/Composer.tsx | 18 ++---------------- 2 files changed, 16 insertions(+), 20 deletions(-) diff --git a/src/components/main/Main.tsx b/src/components/main/Main.tsx index c6bee19aa..8ca0bf9ee 100644 --- a/src/components/main/Main.tsx +++ b/src/components/main/Main.tsx @@ -8,7 +8,7 @@ import { ApiMessage } from '../../api/types'; import '../../modules/actions/all'; import { - ANIMATION_END_DELAY, DEBUG, INACTIVE_MARKER, PAGE_TITLE, + ANIMATION_END_DELAY, BASE_EMOJI_KEYWORD_LANG, DEBUG, INACTIVE_MARKER, PAGE_TITLE, } from '../../config'; import { pick } from '../../util/iteratees'; import { @@ -36,6 +36,7 @@ import SafeLinkModal from './SafeLinkModal.async'; import HistoryCalendar from './HistoryCalendar.async'; import './Main.scss'; +import { LangCode } from '../../types'; type StateProps = { animationLevel: number; @@ -50,11 +51,12 @@ type StateProps = { safeLinkModalUrl?: string; isHistoryCalendarOpen: boolean; shouldSkipHistoryAnimations?: boolean; + language?: LangCode; }; type DispatchProps = Pick; const ANIMATION_DURATION = 350; @@ -78,11 +80,13 @@ const Main: FC = ({ safeLinkModalUrl, isHistoryCalendarOpen, shouldSkipHistoryAnimations, + language, loadAnimatedEmojis, loadNotificationSettings, loadNotificationExceptions, updateIsOnline, loadTopInlineBots, + loadEmojiKeywords, }) => { if (DEBUG && !DEBUG_isLogged) { DEBUG_isLogged = true; @@ -98,10 +102,15 @@ const Main: FC = ({ loadNotificationSettings(); loadNotificationExceptions(); loadTopInlineBots(); + + loadEmojiKeywords({ language: BASE_EMOJI_KEYWORD_LANG }); + if (language !== BASE_EMOJI_KEYWORD_LANG) { + loadEmojiKeywords({ language }); + } } }, [ lastSyncTime, loadAnimatedEmojis, loadNotificationExceptions, loadNotificationSettings, updateIsOnline, - loadTopInlineBots, + loadTopInlineBots, loadEmojiKeywords, language, ]); const { @@ -244,10 +253,11 @@ export default memo(withGlobal( safeLinkModalUrl: global.safeLinkModalUrl, isHistoryCalendarOpen: Boolean(global.historyCalendarSelectedAt), shouldSkipHistoryAnimations: global.shouldSkipHistoryAnimations, + language: global.settings.byKey.language, }; }, (setGlobal, actions): DispatchProps => pick(actions, [ 'loadAnimatedEmojis', 'loadNotificationSettings', 'loadNotificationExceptions', 'updateIsOnline', - 'loadTopInlineBots', + 'loadTopInlineBots', 'loadEmojiKeywords', ]), )(Main)); diff --git a/src/components/middle/composer/Composer.tsx b/src/components/middle/composer/Composer.tsx index 10b9e311a..0e1d1b3d7 100644 --- a/src/components/middle/composer/Composer.tsx +++ b/src/components/middle/composer/Composer.tsx @@ -18,7 +18,7 @@ import { ApiUser, MAIN_THREAD_ID, } from '../../../api/types'; -import { LangCode, InlineBotSettings } from '../../../types'; +import { InlineBotSettings } from '../../../types'; import { BASE_EMOJI_KEYWORD_LANG, EDITABLE_INPUT_ID, SCHEDULED_WHEN_ONLINE } from '../../../config'; import { IS_VOICE_RECORDING_SUPPORTED, IS_SINGLE_COLUMN_LAYOUT, IS_IOS } from '../../../util/environment'; @@ -124,7 +124,6 @@ type StateProps = { lastSyncTime?: number; contentToBeScheduled?: GlobalState['messages']['contentToBeScheduled']; shouldSuggestStickers?: boolean; - language: LangCode; baseEmojiKeywords?: Record; emojiKeywords?: Record; serverTimeOffset: number; @@ -137,7 +136,7 @@ type DispatchProps = Pick; enum MainButtonState { @@ -188,7 +187,6 @@ const Composer: FC = ({ lastSyncTime, contentToBeScheduled, shouldSuggestStickers, - language, baseEmojiKeywords, emojiKeywords, serverTimeOffset, @@ -210,7 +208,6 @@ const Composer: FC = ({ openChat, clearReceipt, addRecentEmoji, - loadEmojiKeywords, sendInlineBotResult, }) => { const lang = useLang(); @@ -242,15 +239,6 @@ const Composer: FC = ({ } }, [isReady, chatId, loadScheduledHistory, lastSyncTime, threadId]); - useEffect(() => { - if (lastSyncTime && isReady) { - loadEmojiKeywords({ language: BASE_EMOJI_KEYWORD_LANG }); - if (language !== BASE_EMOJI_KEYWORD_LANG) { - loadEmojiKeywords({ language }); - } - } - }, [loadEmojiKeywords, language, lastSyncTime, isReady]); - useLayoutEffect(() => { if (!appendixRef.current) return; @@ -1038,7 +1026,6 @@ export default memo(withGlobal( isReceiptModalOpen: Boolean(global.payment.receipt), shouldSuggestStickers: global.settings.byKey.shouldSuggestStickers, recentEmojis: global.recentEmojis, - language, baseEmojiKeywords: baseEmojiKeywords ? baseEmojiKeywords.keywords : undefined, emojiKeywords: emojiKeywords ? emojiKeywords.keywords : undefined, serverTimeOffset: global.serverTimeOffset, @@ -1062,7 +1049,6 @@ export default memo(withGlobal( 'loadScheduledHistory', 'openChat', 'addRecentEmoji', - 'loadEmojiKeywords', 'sendInlineBotResult', ]), )(Composer));