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