stream-chat-react-native-core
Version:
The official React Native and Expo components for Stream Chat, a service for building chat applications
89 lines • 3.65 kB
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.MessageBounceWithContext = exports.MessageBounce = void 0;
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
var _react = _interopRequireDefault(require("react"));
var _reactNative = require("react-native");
var _MessageComposerAPIContext = require("../../../contexts/messageComposerContext/MessageComposerAPIContext");
var _MessageContext = require("../../../contexts/messageContext/MessageContext");
var _MessagesContext = require("../../../contexts/messagesContext/MessagesContext");
var _TranslationContext = require("../../../contexts/translationContext/TranslationContext");
var _jsxRuntime = require("react/jsx-runtime");
var _jsxFileName = "/home/runner/work/stream-chat-react-native/stream-chat-react-native/package/src/components/Message/MessageItemView/MessageBounce.tsx";
var MessageBounceWithContext = props => {
var _useTranslationContex = (0, _TranslationContext.useTranslationContext)(),
t = _useTranslationContex.t;
var message = props.message,
removeMessage = props.removeMessage,
retrySendMessage = props.retrySendMessage,
setEditingState = props.setEditingState,
setIsBounceDialogOpen = props.setIsBounceDialogOpen;
var handleEditMessage = () => {
setEditingState(message);
if (setIsBounceDialogOpen) {
setIsBounceDialogOpen(false);
}
};
var handleResend = () => {
retrySendMessage(message);
if (setIsBounceDialogOpen) {
setIsBounceDialogOpen(false);
}
};
var handleRemoveMessage = function () {
var _ref = (0, _asyncToGenerator2.default)(function* () {
yield removeMessage(message);
if (setIsBounceDialogOpen) {
setIsBounceDialogOpen(false);
}
});
return function handleRemoveMessage() {
return _ref.apply(this, arguments);
};
}();
return (0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
children: _reactNative.Alert.alert(t('Are you sure?'), t('Consider how your comment might make others feel and be sure to follow our Community Guidelines'), [{
onPress: handleResend,
text: t('Send Anyway')
}, {
onPress: handleEditMessage,
text: t('Edit Message')
}, {
onPress: handleRemoveMessage,
text: t('Delete Message')
}], {
cancelable: true
})
});
};
exports.MessageBounceWithContext = MessageBounceWithContext;
var areEqual = (prevProps, nextProps) => {
var prevMessage = prevProps.message;
var nextMessage = nextProps.message;
var messageEqual = prevMessage.cid === nextMessage.cid && prevMessage.type === nextMessage.type && prevMessage.text === nextMessage.text;
if (!messageEqual) {
return false;
}
return true;
};
var MemoizedMessageBounce = _react.default.memo(MessageBounceWithContext, areEqual);
var MessageBounce = props => {
var _useMessageContext = (0, _MessageContext.useMessageContext)(),
message = _useMessageContext.message;
var _useMessagesContext = (0, _MessagesContext.useMessagesContext)(),
removeMessage = _useMessagesContext.removeMessage,
retrySendMessage = _useMessagesContext.retrySendMessage;
var _useMessageComposerAP = (0, _MessageComposerAPIContext.useMessageComposerAPIContext)(),
setEditingState = _useMessageComposerAP.setEditingState;
return (0, _jsxRuntime.jsx)(MemoizedMessageBounce, {
message,
removeMessage,
retrySendMessage,
setEditingState,
...props
});
};
exports.MessageBounce = MessageBounce;
//# sourceMappingURL=MessageBounce.js.map