UNPKG

stream-chat-react-native-core

Version:

The official React Native and Expo components for Stream Chat, a service for building chat applications

65 lines 3.22 kB
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 != null ? size : 'md' }) : (0, _jsxRuntime.jsx)(_reactNative.View, { style: _constants.avatarSizes[size != null ? size : 'md'], testID: "spacer" }) }); }; var areEqual = (prevProps, nextProps) => { var _prevMessage$user, _nextMessage$user, _prevMessage$user2, _nextMessage$user2, _prevMessage$user3, _nextMessage$user3; 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 = prevMessage.user) == null ? void 0 : _prevMessage$user.image) === ((_nextMessage$user = nextMessage.user) == null ? void 0 : _nextMessage$user.image) && ((_prevMessage$user2 = prevMessage.user) == null ? void 0 : _prevMessage$user2.name) === ((_nextMessage$user2 = nextMessage.user) == null ? void 0 : _nextMessage$user2.name) && ((_prevMessage$user3 = prevMessage.user) == null ? void 0 : _prevMessage$user3.id) === ((_nextMessage$user3 = nextMessage.user) == null ? void 0 : _nextMessage$user3.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