mattermost-mobile/app/utils/member_list.js

46 lines
1.2 KiB
JavaScript

// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
import {t} from 'app/utils/i18n';
export const loadingText = {
id: t('mobile.loading_members'),
defaultMessage: 'Loading Members...',
};
const sectionKeyExtractor = (profile) => {
// Group items alphabetically by first letter of username
return profile.username[0].toUpperCase();
};
export function createProfilesSections(profiles) {
const sections = {};
const sectionKeys = [];
for (const profile of profiles) {
const sectionKey = sectionKeyExtractor(profile);
if (!sections[sectionKey]) {
sections[sectionKey] = [];
sectionKeys.push(sectionKey);
}
sections[sectionKey].push(profile);
}
sectionKeys.sort();
return sectionKeys.map((sectionKey) => {
return {
id: sectionKey,
data: sections[sectionKey],
};
});
}
export function markSelectedProfiles(profiles, selectedProfiles) {
return profiles.map((p) => {
const profile = {...p};
profile.selected = selectedProfiles[p.id];
return profile;
});
}