mattermost-mobile/app/screens/post_options/reaction_bar/index.ts
Elias Nahum 2621d921d6
[Gekidou] Performance & UI fixes (#6122)
* Fix search bar style

* MM-42983 Align mention badge on channel list item

* MM-42985 polish channel intro UI

* MM-42984 update fonts on 'Show' bottom sheet

* MM-42982 Increase tap area of back button on channel view

* Set StatusBar style based on theme sidebarBg

* Reconnect other WS after 20 seconds insted of 5

* Only fetch missing profiles for DM/GMs

* Database prepare records optimization

* Do not use fallbackUsername for storing GM/DM in the database

* fix filter for fetching missing dm/gm

* remove use of indexOf inside another loop

* remove use of includes inside another loop

* remove use of find inside another loop

* Add missing translations

* disable Flipper on iOS

* Remove Flipper code from AppDelegate

* feedback review

* trim DM display name to make sure is not empty

* fixing missing direct channels display name

* UI/UX feedback

* fix WS channel viewed and mark as unread

* Remove duplicate emojis from reaction bar
2022-04-04 17:09:26 -04:00

39 lines
1.2 KiB
TypeScript

// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
import {withDatabase} from '@nozbe/watermelondb/DatabaseProvider';
import withObservables from '@nozbe/with-observables';
import {of as of$} from 'rxjs';
import {switchMap} from 'rxjs/operators';
import {observeRecentReactions} from '@queries/servers/system';
import {getEmojiFirstAlias} from '@utils/emoji/helpers';
import ReactionBar from './reaction_bar';
import type {WithDatabaseArgs} from '@typings/database/database';
const DEFAULT_EMOJIS = [
'+1',
'smiley',
'white_check_mark',
'heart',
'eyes',
'raised_hands',
];
const mergeRecentWithDefault = (recentEmojis: string[]) => {
const emojiAliases = recentEmojis.slice(0, 6).map((emoji) => getEmojiFirstAlias(emoji));
const emojisSet = new Set(emojiAliases);
const filterUsed = DEFAULT_EMOJIS.filter((e) => !emojisSet.has(e));
return emojiAliases.concat(filterUsed).splice(0, 6);
};
const enhanced = withObservables([], ({database}: WithDatabaseArgs) => ({
recentEmojis: observeRecentReactions(database).
pipe(
switchMap((recent) => of$(mergeRecentWithDefault(recent))),
),
}));
export default withDatabase(enhanced(ReactionBar));