function mapStateToProps(state, ownProps) { const config = getConfig(state); const emojiName = ownProps.emojiName; const customEmojis = getCustomEmojisByName(state); let imageUrl = ''; let isCustomEmoji = false; let displayTextOnly = false; if (EmojiIndicesByAlias.has(emojiName)) { const emoji = Emojis[EmojiIndicesByAlias.get(emojiName)]; imageUrl = Client4.getSystemEmojiImageUrl(emoji.filename); } else if (customEmojis.has(emojiName)) { const emoji = customEmojis.get(emojiName); imageUrl = Client4.getCustomEmojiImageUrl(emoji.id); isCustomEmoji = true; } else { displayTextOnly = state.entities.emojis.nonExistentEmoji.has(emojiName) || config.EnableCustomEmoji !== 'true' || config.ExperimentalEnablePostMetadata === 'true' || getCurrentUserId(state) === '' || !isMinimumServerVersion(Client4.getServerVersion(), 4, 7); } return { imageUrl, isCustomEmoji, displayTextOnly, }; }
this.searchTermTimeout = setTimeout(async () => { if (isMinimumServerVersion(this.props.serverVersion, 4, 7)) { await this.props.actions.searchCustomEmojis(text); } const filteredEmojis = this.searchEmojis(text); this.setState({ filteredEmojis, }); }, timeout);
function mapStateToProps(state) { const config = getConfig(state); const currentUser = getCurrentUser(state) || {}; const currentUserStatus = getStatusForUserId(state, currentUser.id); const serverVersion = state.entities.general.serverVersion; const enableAutoResponder = isMinimumServerVersion(serverVersion, 4, 9) && config.ExperimentalEnableAutomaticReplies === 'true'; return { config, currentUser, currentUserStatus, myPreferences: getMyPreferences(state), updateMeRequest: state.requests.users.updateMe, theme: getTheme(state), enableAutoResponder, }; }
loadMoreCustomEmojis = async () => { if (!this.props.customEmojisEnabled || !isMinimumServerVersion(this.props.serverVersion, 4, 7)) { return; } const {data} = await this.props.actions.getCustomEmojis(this.props.customEmojiPage, EMOJIS_PER_PAGE); this.setState({loadingMore: false}); if (!data) { return; } if (data.length < EMOJIS_PER_PAGE) { this.setState({missingPages: false}); return; } this.props.actions.incrementEmojiPickerPage(); }
constructor(props) { super(props); this.sectionListGetItemLayout = sectionListGetItemLayout({ getItemHeight: () => { return EMOJI_SIZE + (EMOJI_GUTTER * 2); }, getSectionHeaderHeight: () => SECTION_HEADER_HEIGHT, }); const emojis = this.renderableEmojis(props.emojisBySection, props.deviceWidth); const emojiSectionIndexByOffset = this.measureEmojiSections(emojis); this.scrollToSectionTries = 0; this.state = { emojis, emojiSectionIndexByOffset, filteredEmojis: [], searchTerm: '', currentSectionIndex: 0, missingPages: isMinimumServerVersion(this.props.serverVersion, 4, 7), }; }