UNPKG

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
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