import { GetSessionDataManager } from '@nitrots/nitro-renderer'; import { FC, useMemo } from 'react'; import { GetGroupChatData, LocalizeText, MessengerGroupType, MessengerThread, MessengerThreadChat, MessengerThreadChatGroup } from '../../../../../api'; import { Base, Flex, LayoutAvatarImageView } from '../../../../../common'; export const FriendsMessengerThreadGroup: FC<{ thread: MessengerThread, group: MessengerThreadChatGroup }> = props => { const { thread = null, group = null } = props; const groupChatData = useMemo(() => ((group.type === MessengerGroupType.GROUP_CHAT) && GetGroupChatData(group.chats[0].extraData)), [ group ]); const isOwnChat = useMemo(() => { if(!thread || !group) return false; if((group.type === MessengerGroupType.PRIVATE_CHAT) && (group.userId === GetSessionDataManager().userId)) return true; if(groupChatData && group.chats.length && (groupChatData.userId === GetSessionDataManager().userId)) return true; return false; }, [ thread, group, groupChatData ]); if(!thread || !group) return null; if(!group.userId) { return ( <> { group.chats.map((chat, index) => { return ( { (chat.type === MessengerThreadChat.SECURITY_NOTIFICATION) && { chat.message } } { (chat.type === MessengerThreadChat.ROOM_INVITE) && { (LocalizeText('messenger.invitation') + ' ') }{ chat.message } } ); }) } ); } return ( { ((group.type === MessengerGroupType.PRIVATE_CHAT) && !isOwnChat) && } { (groupChatData && !isOwnChat) && } { isOwnChat && GetSessionDataManager().userName } { !isOwnChat && (groupChatData ? groupChatData.username : thread.participant.name) } { group.chats.map((chat, index) => { chat.message }) } { isOwnChat && } ); };