UNPKG

stream-chat-react-native-core

Version:

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

127 lines 3.62 kB
Object.defineProperty(exports, "__esModule", { value: true }); exports.useCreateMessageContext = void 0; var _react = require("react"); var _AccessibilityContext = require("../../../contexts/accessibilityContext/AccessibilityContext"); var _utils = require("../../../utils/utils"); function useStableRefValue(value) { var ref = (0, _react.useRef)(value); if (ref.current !== value) { ref.current = value; } return ref.current; } var useCreateMessageContext = ({ actionsEnabled, alignment, channel, contextMenuAnchorRef, deliveredToCount, dismissOverlay, files, goToMessage, groupStyles, handleAction, hasAttachmentActions, handleReaction, handleToggleReaction, hasReactions, messageHasOnlySingleAttachment, images, isMessageAIGenerated, isMyMessage, lastGroupMessage, members, message, messageOverlayId, messageContentOrder, myMessageTheme, onLongPress, onlyEmojis, onOpenThread, onPress, onPressIn, onThreadSelect, otherAttachments, preventPress, registerMessageOverlayTarget, unregisterMessageOverlayTarget, reactions, readBy, showAvatar, showMessageOverlay, showReactionsOverlay, showMessageStatus, threadList, videos, setQuotedMessage }) => { var stableGroupStyles = useStableRefValue(groupStyles); var reactionsValue = reactions.map(({ count, own, type }) => `${own}${type}${count}`).join(); var stringifiedMessage = (0, _utils.stringifyMessage)({ message }); var membersValue = JSON.stringify(members); var myMessageThemeString = (0, _react.useMemo)(() => JSON.stringify(myMessageTheme), [myMessageTheme]); var stringifiedQuotedMessage = message.quoted_message ? (0, _utils.stringifyMessage)({ includeReactions: false, message: message.quoted_message }) : ''; var _useAccessibilityCont = (0, _AccessibilityContext.useAccessibilityContext)(), hasInteractiveAccessibilityContentPredicate = _useAccessibilityCont.hasInteractiveAccessibilityContent; var hasInteractiveAccessibilityContent = hasInteractiveAccessibilityContentPredicate(message); var messageContext = (0, _react.useMemo)(() => ({ actionsEnabled, alignment, channel, contextMenuAnchorRef, deliveredToCount, dismissOverlay, files, goToMessage, groupStyles: stableGroupStyles, handleAction, hasAttachmentActions, handleReaction, handleToggleReaction, hasInteractiveAccessibilityContent, hasReactions, messageHasOnlySingleAttachment, images, isMessageAIGenerated, isMyMessage, lastGroupMessage, members, message, messageOverlayId, messageContentOrder, myMessageTheme, onLongPress, onlyEmojis, onOpenThread, onPress, onPressIn, onThreadSelect, otherAttachments, preventPress, registerMessageOverlayTarget, unregisterMessageOverlayTarget, reactions, readBy, setQuotedMessage, showAvatar, showMessageOverlay, showReactionsOverlay, showMessageStatus, threadList, videos }), [actionsEnabled, alignment, goToMessage, stableGroupStyles, hasAttachmentActions, hasInteractiveAccessibilityContent, hasReactions, messageHasOnlySingleAttachment, lastGroupMessage, membersValue, myMessageThemeString, messageOverlayId, reactionsValue, stringifiedMessage, stringifiedQuotedMessage, readBy, deliveredToCount, showAvatar, showMessageStatus, threadList, preventPress, unregisterMessageOverlayTarget]); return messageContext; }; exports.useCreateMessageContext = useCreateMessageContext; //# sourceMappingURL=useCreateMessageContext.js.map