UNPKG

stream-chat-react-native-core

Version:

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

72 lines 2.19 kB
Object.defineProperty(exports, "__esModule", { value: true }); exports.messageActions = void 0; var _native = require("../../../native"); var _types = require("../../../types/types"); var messageActions = ({ banUser, copyMessage, deleteMessage, editMessage, error, flagMessage, isMyMessage, isThreadMessage, markUnread, muteUser, message, ownCapabilities, pinMessage, quotedReply, retry, threadReply, unpinMessage, blockUser }) => { var messageHasGiphyOrImgur = message.attachments?.some(attachment => attachment.type === _types.FileTypes.Giphy || attachment.type === _types.FileTypes.Imgur); var actions = []; if (error && isMyMessage) { actions.push(retry); } if (ownCapabilities.sendReply && !isThreadMessage && !error) { actions.push(threadReply); } if (ownCapabilities.quoteMessage && !isThreadMessage && !error) { actions.push(quotedReply); } if (ownCapabilities.pinMessage && !message.pinned) { actions.push(pinMessage); } if (ownCapabilities.pinMessage && message.pinned) { actions.push(unpinMessage); } if ((isMyMessage && ownCapabilities.updateOwnMessage || !isMyMessage && ownCapabilities.updateAnyMessage) && !messageHasGiphyOrImgur && !message.poll_id) { actions.push(editMessage); } if ((0, _native.isClipboardAvailable)() && message.text && !error) { actions.push(copyMessage); } if (ownCapabilities.readEvents && !error && !isThreadMessage && !isMyMessage) { actions.push(markUnread); } if (!isMyMessage && ownCapabilities.banChannelMembers) { actions.push(banUser); } if (isMyMessage && ownCapabilities.deleteOwnMessage || !isMyMessage && ownCapabilities.deleteAnyMessage) { actions.push(deleteMessage); } if (!isMyMessage && ownCapabilities.flagMessage) { actions.push(flagMessage); } if (!isMyMessage) { actions.push(muteUser); actions.push(blockUser); } if (error) { return actions.filter(action => action.actionType === 'deleteMessage' || action.actionType === 'retry' || action.actionType === 'editMessage'); } return actions; }; exports.messageActions = messageActions; //# sourceMappingURL=messageActions.js.map