UNPKG

@sendbird/uikit-react-native-foundation

Version:

A foundational UI kit for building chat-enabled React Native apps.

68 lines 2.19 kB
import React from 'react'; import { getFileExtension, getFileType, truncate } from '@sendbird/uikit-utils'; import Box from '../../components/Box'; import Icon from '../../components/Icon'; import PressBox from '../../components/PressBox'; import Text from '../../components/Text'; import createStyleSheet from '../../styles/createStyleSheet'; import useUIKitTheme from '../../theme/useUIKitTheme'; import MessageContainer from './MessageContainer'; const FileMessage = props => { const { variant = 'incoming' } = props; const { colors } = useUIKitTheme(); const fileType = getFileType(props.message.type || getFileExtension(props.message.name)); const color = colors.ui.groupChannelMessage[variant]; return /*#__PURE__*/React.createElement(MessageContainer, props, /*#__PURE__*/React.createElement(PressBox, { onPress: props.onPress, onLongPress: props.onLongPress }, ({ pressed }) => { var _props$strings; return /*#__PURE__*/React.createElement(Box, { backgroundColor: pressed ? color.pressed.background : color.enabled.background, style: styles.container }, /*#__PURE__*/React.createElement(Box, { style: styles.bubble }, /*#__PURE__*/React.createElement(Icon.File, { fileType: fileType, size: 24, containerStyle: { backgroundColor: colors.background, padding: 2, borderRadius: 8, marginEnd: 8 } }), /*#__PURE__*/React.createElement(Text, { body3: true, ellipsizeMode: 'middle', numberOfLines: 1, color: pressed ? color.pressed.textMsg : color.enabled.textMsg, style: styles.name }, truncate(((_props$strings = props.strings) === null || _props$strings === void 0 ? void 0 : _props$strings.fileName) || props.message.name, { mode: 'mid', maxLen: 20 }))), props.children); })); }; const styles = createStyleSheet({ container: { overflow: 'hidden', borderRadius: 16 }, bubble: { flexDirection: 'row', alignItems: 'center', paddingHorizontal: 12, paddingVertical: 6 }, name: { flexShrink: 1 } }); export default FileMessage; //# sourceMappingURL=Message.file.js.map