46 lines
1.2 KiB
JavaScript
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;
|
|
});
|
|
}
|