import React from 'react';
import { View } from 'react-native';
import FastImage from 'react-native-fast-image';
import Touchable from 'react-native-platform-touchable';
import { settings as RocketChatSettings } from '@rocket.chat/sdk';
import { getAvatarURL } from '../../lib/methods/helpers/getAvatarUrl';
import { SubscriptionType } from '../../definitions';
import Emoji from '../markdown/Emoji';
import { IAvatar } from './interfaces';
const Avatar = React.memo(
({
server,
style,
avatar,
children,
userId,
token,
onPress,
emoji,
getCustomEmoji,
avatarETag,
isStatic,
rid,
blockUnauthenticatedAccess,
serverVersion,
text,
size = 25,
borderRadius = 4,
type = SubscriptionType.DIRECT,
avatarExternalProviderUrl,
roomAvatarExternalProviderUrl,
cdnPrefix
}: IAvatar) => {
if ((!text && !avatar && !emoji && !rid) || !server) {
return null;
}
const avatarStyle = {
width: size,
height: size,
borderRadius
};
let image;
if (emoji) {
image = ;
} else {
let uri = avatar;
if (!isStatic) {
uri = getAvatarURL({
type,
text,
size,
userId,
token,
avatar,
server,
avatarETag,
serverVersion,
rid,
blockUnauthenticatedAccess,
avatarExternalProviderUrl,
roomAvatarExternalProviderUrl,
cdnPrefix
});
}
image = (
);
}
if (onPress) {
image = {image};
}
return (
{image}
{children}
);
}
);
export default Avatar;