UNPKG

@livelike/react-native

Version:

LiveLike React Native package

77 lines 2.42 kB
import React, { useState } from 'react'; import { Image, StyleSheet, View } from 'react-native'; import { hasDebugLogger } from '@livelike/javascript'; import { convertDateTime } from '../../utils'; import { useStyles, useTheme } from '../../hooks'; import { LLText } from '../LLText'; export function LLChatMessageItemHeader(_ref) { let { message: messageDetails, isSelfMessage, styles: stylesProp, formatMessageTimestamp = convertDateTime } = _ref; const [imageLoadError, setImageLoadError] = useState(false); const { themeAssets } = useTheme(); const messageItemHeaderStyles = useStyles({ componentStylesFn: getMessageItemHeaderStyles, stylesProp }); return /*#__PURE__*/React.createElement(View, { style: messageItemHeaderStyles.headerContainer }, /*#__PURE__*/React.createElement(Image, { style: messageItemHeaderStyles.avatarImage, source: messageDetails.sender_image_url && !imageLoadError ? { uri: messageDetails.sender_image_url } : themeAssets.avatar, onError: () => { setImageLoadError(true); hasDebugLogger() && console.error('userAvatarUrl is invalid'); } }), /*#__PURE__*/React.createElement(View, { style: messageItemHeaderStyles.titleContainer }, /*#__PURE__*/React.createElement(LLText, { style: [messageItemHeaderStyles.username, isSelfMessage && messageItemHeaderStyles.ownUsername] }, messageDetails.sender_nickname), /*#__PURE__*/React.createElement(LLText, { style: [messageItemHeaderStyles.timestamp, isSelfMessage && messageItemHeaderStyles.ownTimestamp] }, formatMessageTimestamp(messageDetails.created_at)))); } const getMessageItemHeaderStyles = _ref2 => { let { theme } = _ref2; return StyleSheet.create({ headerContainer: { display: 'flex', flexDirection: 'row', alignItems: 'center' }, avatarImage: { borderRadius: 50, height: 30, width: 30, marginRight: 10, alignItems: 'flex-start' }, titleContainer: { display: 'flex', flexDirection: 'column', justifyContent: 'flex-start' }, username: { fontWeight: 'bold', color: theme.text }, ownUsername: {}, timestamp: { alignSelf: 'flex-start', fontSize: 10, color: theme.secondaryText, marginTop: 3 }, ownTimestamp: {} }); }; //# sourceMappingURL=LLChatMessageItemHeader.js.map