58 lines
1.1 KiB
TypeScript
58 lines
1.1 KiB
TypeScript
import React from 'react';
|
|
import { View } from 'react-native';
|
|
|
|
import Avatar from '../Avatar';
|
|
import { DisplayMode } from '../../lib/constants';
|
|
import TypeIcon from './TypeIcon';
|
|
import styles from './styles';
|
|
import { IIconOrAvatar } from './interfaces';
|
|
|
|
const IconOrAvatar = ({
|
|
avatar,
|
|
type,
|
|
rid,
|
|
showAvatar,
|
|
prid,
|
|
status,
|
|
isGroupChat,
|
|
teamMain,
|
|
showLastMessage,
|
|
displayMode,
|
|
sourceType,
|
|
isUserProfile
|
|
}: IIconOrAvatar): React.ReactElement | null => {
|
|
if (showAvatar) {
|
|
return (
|
|
<Avatar
|
|
isUserProfile={isUserProfile}
|
|
text={avatar}
|
|
size={displayMode === DisplayMode.Condensed ? 36 : 48}
|
|
type={type}
|
|
style={styles.avatar}
|
|
rid={rid}
|
|
/>
|
|
);
|
|
}
|
|
|
|
if (displayMode === DisplayMode.Expanded && showLastMessage) {
|
|
return (
|
|
<View style={styles.typeIcon}>
|
|
<TypeIcon
|
|
type={type}
|
|
prid={prid}
|
|
status={status}
|
|
isGroupChat={isGroupChat}
|
|
teamMain={teamMain}
|
|
size={24}
|
|
style={{ marginRight: 12 }}
|
|
sourceType={sourceType}
|
|
/>
|
|
</View>
|
|
);
|
|
}
|
|
|
|
return null;
|
|
};
|
|
|
|
export default IconOrAvatar;
|