@100mslive/react-native-room-kit
Version:
100ms Room Kit provides simple & easy to use UI components to build Live Streaming & Video Conferencing experiences in your apps.
79 lines • 2.19 kB
JavaScript
import * as React from 'react';
import { StyleSheet, Text, View } from 'react-native';
import { PersonIcon } from '../../Icons';
import { getInitials } from '../../utils/functions';
import { COLORS } from '../../utils/theme';
import { useHMSRoomStyleSheet } from '../../hooks-util';
export const _AvatarView = ({
name,
videoView,
avatarStyles,
avatarContainerStyles,
isInset = false
}) => {
const showInitials = !!name && name.length > 0;
const hmsRoomStyles = useHMSRoomStyleSheet((theme, typography) => ({
avatarContainer: {
backgroundColor: theme.palette.background_default
},
avatar: {
backgroundColor: COLORS.EXTENDED.PURPLE
},
avatarText: {
color: COLORS.WHITE,
fontFamily: `${typography.font_family}-SemiBold`
}
}));
return /*#__PURE__*/React.createElement(View, {
style: styles.container
}, videoView || /*#__PURE__*/React.createElement(View, {
style: [styles.avatarContainer, hmsRoomStyles.avatarContainer, avatarContainerStyles]
}, /*#__PURE__*/React.createElement(View, {
style: [isInset ? styles.insetAvatar : styles.avatar, hmsRoomStyles.avatar, avatarStyles]
}, showInitials ? /*#__PURE__*/React.createElement(Text, {
style: [isInset ? styles.insetText : styles.avatarText, hmsRoomStyles.avatarText]
}, getInitials(name)) : /*#__PURE__*/React.createElement(PersonIcon, {
style: styles.avatarIcon
}))));
};
const styles = StyleSheet.create({
container: {
flex: 1,
position: 'relative',
overflow: 'hidden'
},
avatarContainer: {
flex: 1,
alignItems: 'center',
justifyContent: 'center'
},
avatar: {
width: 88,
aspectRatio: 1,
borderRadius: 44,
justifyContent: 'center',
alignItems: 'center'
},
insetAvatar: {
width: 44,
aspectRatio: 1,
borderRadius: 22,
justifyContent: 'center',
alignItems: 'center'
},
avatarIcon: {
width: 40,
height: 40
},
avatarText: {
fontSize: 34,
lineHeight: 40,
letterSpacing: 0.25
},
insetText: {
fontSize: 18,
lineHeight: 24
}
});
export const AvatarView = /*#__PURE__*/React.memo(_AvatarView);
//# sourceMappingURL=AvatarView.js.map