stream-chat-react-native-core
Version:
The official React Native and Expo components for Stream Chat, a service for building chat applications
64 lines • 2.7 kB
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.MessageAuthor = void 0;
var _react = _interopRequireDefault(require("react"));
var _reactNative = require("react-native");
var _MessageContext = require("../../../contexts/messageContext/MessageContext");
var _ThemeContext = require("../../../contexts/themeContext/ThemeContext");
var _ui = require("../../ui");
var _constants = require("../../ui/Avatar/constants");
var _jsxRuntime = require("react/jsx-runtime");
var _jsxFileName = "/home/runner/work/stream-chat-react-native/stream-chat-react-native/package/src/components/Message/MessageItemView/MessageAuthor.tsx";
var MessageAuthorWithContext = props => {
var lastGroupMessage = props.lastGroupMessage,
message = props.message,
showAvatar = props.showAvatar,
size = props.size;
var _useTheme = (0, _ThemeContext.useTheme)(),
container = _useTheme.theme.messageItemView.authorWrapper.container;
var visible = typeof showAvatar === 'boolean' ? showAvatar : lastGroupMessage;
return (0, _jsxRuntime.jsx)(_reactNative.View, {
style: container,
testID: "message-author",
children: visible && message.user ? (0, _jsxRuntime.jsx)(_ui.UserAvatar, {
user: message.user,
size: size ?? 'md'
}) : (0, _jsxRuntime.jsx)(_reactNative.View, {
style: _constants.avatarSizes[size ?? 'md'],
testID: "spacer"
})
});
};
var areEqual = (prevProps, nextProps) => {
var prevLastGroupMessage = prevProps.lastGroupMessage,
prevMessage = prevProps.message;
var nextLastGroupMessage = nextProps.lastGroupMessage,
nextMessage = nextProps.message;
var lastGroupMessageEqual = prevLastGroupMessage === nextLastGroupMessage;
if (!lastGroupMessageEqual) {
return false;
}
var userEqual = prevMessage.user?.image === nextMessage.user?.image && prevMessage.user?.name === nextMessage.user?.name && prevMessage.user?.id === nextMessage.user?.id;
if (!userEqual) {
return false;
}
return true;
};
var MemoizedMessageAuthor = _react.default.memo(MessageAuthorWithContext, areEqual);
var MessageAuthor = props => {
var _useMessageContext = (0, _MessageContext.useMessageContext)(),
lastGroupMessage = _useMessageContext.lastGroupMessage,
message = _useMessageContext.message,
showAvatar = _useMessageContext.showAvatar;
return (0, _jsxRuntime.jsx)(MemoizedMessageAuthor, {
lastGroupMessage,
message,
showAvatar,
...props
});
};
exports.MessageAuthor = MessageAuthor;
MessageAuthor.displayName = 'MessageAuthor{messageItemView{authorWrapper}}';
//# sourceMappingURL=MessageAuthor.js.map