mattermost-mobile/app/helpers/database/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

36 lines
1.3 KiB
TypeScript

// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
import {General} from '@constants';
import type Model from '@nozbe/watermelondb/Model';
import type ChannelModel from '@typings/database/models/servers/channel';
export const extractRecordsForTable = <T>(records: Model[], tableName: string): T[] => {
// @ts-expect-error constructor.table not exposed in type definition
return records.filter((r) => r.constructor.table === tableName) as T[];
};
export function extractChannelDisplayName(raw: Pick<Channel, 'type' | 'display_name'>, record?: ChannelModel) {
let displayName = '';
switch (raw.type) {
case General.DM_CHANNEL:
displayName = raw.display_name.trim() || record?.displayName || '';
break;
case General.GM_CHANNEL: {
const rawMembers = raw.display_name.split(',').length;
const recordMembers = record?.displayName.split(',').length || rawMembers;
if (recordMembers < rawMembers && record?.displayName) {
displayName = record.displayName;
} else {
displayName = raw.display_name;
}
break;
}
default:
displayName = raw.display_name;
break;
}
return displayName;
}