@sendbird/uikit-react-native-foundation
Version:
A foundational UI kit for building chat-enabled React Native apps.
70 lines • 2.79 kB
JavaScript
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
import React from 'react';
import { urlRegexStrict } from '@sendbird/uikit-utils';
import Box from '../../components/Box';
import PressBox from '../../components/PressBox';
import RegexText from '../../components/RegexText';
import Text from '../../components/Text';
import useUIKitTheme from '../../theme/useUIKitTheme';
import MessageContainer from './MessageContainer';
const UserMessage = props => {
const {
colors
} = useUIKitTheme();
const {
onPress,
onLongPress,
onPressURL,
...rest
} = props;
const color = colors.ui.openChannelMessage.default;
return /*#__PURE__*/React.createElement(PressBox, {
onPress: onPress,
onLongPress: onLongPress
}, ({
pressed
}) => {
var _props$strings, _props$strings2;
return /*#__PURE__*/React.createElement(MessageContainer, _extends({
pressed: pressed
}, rest), /*#__PURE__*/React.createElement(Box, {
alignItems: 'flex-start'
}, /*#__PURE__*/React.createElement(Text, {
body3: true,
color: color.enabled.textMsg,
suppressHighlighting: true,
supportRTLAlign: true,
originalText: props.message.message
}, /*#__PURE__*/React.createElement(RegexText, {
body3: true,
suppressHighlighting: true,
supportRTLAlign: true,
originalText: props.message.message,
color: color.enabled.textMsg,
patterns: [{
regex: urlRegexStrict,
replacer({
match,
parentProps,
keyPrefix,
index
}) {
return /*#__PURE__*/React.createElement(Text, _extends({}, parentProps, {
key: `${keyPrefix}-${index}`,
onPress: () => onPressURL === null || onPressURL === void 0 ? void 0 : onPressURL(match),
onLongPress: onLongPress,
color: colors.primary,
style: parentProps === null || parentProps === void 0 ? void 0 : parentProps.style
}), match);
}
}]
}, props.message.message), Boolean(props.message.updatedAt) && /*#__PURE__*/React.createElement(Text, {
body3: true,
color: color.enabled.textMsgPostfix,
supportRTLAlign: true,
originalText: ((_props$strings = props.strings) === null || _props$strings === void 0 ? void 0 : _props$strings.edited) ?? ' (edited)'
}, ((_props$strings2 = props.strings) === null || _props$strings2 === void 0 ? void 0 : _props$strings2.edited) ?? ' (edited)'))));
});
};
export default UserMessage;
//# sourceMappingURL=Message.user.js.map