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 &&
}
);
};