tweb-i2p/src/components/wrappers/getChatMembersString.ts
Eduard Kuzmenko bc773884f3 Multitabs
Floating avatars
Dialogs placeholder
Bubble grouping fixes
Layer 143
Improve profile change performance
Webpack 5
Message reading fixes
2022-06-17 20:01:43 +04:00

36 lines
1.3 KiB
TypeScript

/*
* https://github.com/morethanwords/tweb
* Copyright (C) 2019-2021 Eduard Kuzmenko
* https://github.com/morethanwords/tweb/blob/master/LICENSE
*/
import numberThousandSplitter from "../../helpers/number/numberThousandSplitter";
import { Chat, ChatParticipants } from "../../layer";
import { i18n, LangPackKey } from "../../lib/langPack";
import rootScope from "../../lib/rootScope";
export default async function getChatMembersString(chatId: ChatId, managers = rootScope.managers) {
const chat: Chat = await managers.appChatsManager.getChat(chatId);
if(chat._ === 'chatForbidden') {
return i18n('YouWereKicked');
}
const chatFull = await managers.appProfileManager.getCachedFullChat(chatId);
let count: number;
if(chatFull) {
if(chatFull._ === 'channelFull') {
count = chatFull.participants_count;
} else {
count = (chatFull.participants as ChatParticipants.chatParticipants).participants?.length;
}
} else {
count = (chat as Chat.chat).participants_count || (chat as any).participants?.participants.length;
}
const isBroadcast = (chat as Chat.channel).pFlags.broadcast;
count = count || 1;
let key: LangPackKey = isBroadcast ? 'Peer.Status.Subscribers' : 'Peer.Status.Member';
return i18n(key, [numberThousandSplitter(count)]);
}