stream-chat-react-native-core
Version:
The official React Native and Expo components for Stream Chat, a service for building chat applications
105 lines • 4.76 kB
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.useMessagePreviewText = void 0;
var _dayjs = _interopRequireDefault(require("dayjs"));
var _useGroupedAttachments = require("./useGroupedAttachments");
var _ChatContext = require("../../contexts/chatContext/ChatContext");
var _TranslationContext = require("../../contexts/translationContext/TranslationContext");
var _useStateStore2 = require("../../hooks/useStateStore");
var selector = nextValue => ({
name: nextValue.name
});
var useMessagePreviewText = ({
message
}) => {
var _message$poll_id, _useStateStore, _message$attachments;
var _useTranslationContex = (0, _TranslationContext.useTranslationContext)(),
t = _useTranslationContex.t;
var _useChatContext = (0, _ChatContext.useChatContext)(),
client = _useChatContext.client;
var poll = client.polls.fromState((_message$poll_id = message == null ? void 0 : message.poll_id) != null ? _message$poll_id : '');
var _ref = (_useStateStore = (0, _useStateStore2.useStateStore)(poll == null ? void 0 : poll.state, selector)) != null ? _useStateStore : {},
pollName = _ref.name;
var _useGroupedAttachment = (0, _useGroupedAttachments.useGroupedAttachments)(message == null ? void 0 : message.attachments),
giphys = _useGroupedAttachment.giphys,
audios = _useGroupedAttachment.audios,
images = _useGroupedAttachment.images,
videos = _useGroupedAttachment.videos,
files = _useGroupedAttachment.files,
voiceRecordings = _useGroupedAttachment.voiceRecordings;
var attachmentsLength = message == null || (_message$attachments = message.attachments) == null ? void 0 : _message$attachments.length;
var onlyImages = (images == null ? void 0 : images.length) && (images == null ? void 0 : images.length) === attachmentsLength;
var onlyVideos = (videos == null ? void 0 : videos.length) && (videos == null ? void 0 : videos.length) === attachmentsLength;
var onlyFiles = (files == null ? void 0 : files.length) && (files == null ? void 0 : files.length) === attachmentsLength;
var onlyAudio = (audios == null ? void 0 : audios.length) === attachmentsLength;
var onlyVoiceRecordings = (voiceRecordings == null ? void 0 : voiceRecordings.length) && (voiceRecordings == null ? void 0 : voiceRecordings.length) === attachmentsLength;
if ((message == null ? void 0 : message.type) === 'deleted') {
return t('Message deleted');
}
if (pollName) {
return pollName;
}
if (message != null && message.shared_location) {
var _message$shared_locat, _message$shared_locat2;
if (message != null && (_message$shared_locat = message.shared_location) != null && _message$shared_locat.end_at && new Date(message == null || (_message$shared_locat2 = message.shared_location) == null ? void 0 : _message$shared_locat2.end_at) > new Date()) {
return t('Live Location');
}
return t('Location');
}
if (giphys != null && giphys.length) {
return t('Giphy');
}
if (message != null && message.text) {
return message.text;
}
if (onlyImages) {
if ((images == null ? void 0 : images.length) === 1) {
return t('Photo');
} else {
return t('{{count}} Photos', {
count: images == null ? void 0 : images.length
});
}
}
if (onlyVideos) {
if ((videos == null ? void 0 : videos.length) === 1) {
return t('Video');
} else {
return t(`{{count}} Videos`, {
count: videos == null ? void 0 : videos.length
});
}
}
if (onlyAudio) {
if ((audios == null ? void 0 : audios.length) === 1) {
return t('Audio');
} else {
return t('{{count}} Audios', {
count: audios == null ? void 0 : audios.length
});
}
}
if (onlyVoiceRecordings) {
if ((voiceRecordings == null ? void 0 : voiceRecordings.length) === 1) {
var _voiceRecordings$0$du, _voiceRecordings$;
return t(`Voice message ({{duration}})`, {
duration: _dayjs.default.duration((_voiceRecordings$0$du = voiceRecordings == null || (_voiceRecordings$ = voiceRecordings[0]) == null ? void 0 : _voiceRecordings$.duration) != null ? _voiceRecordings$0$du : 0, 'seconds').format('m:ss')
});
} else {
return t('{{count}} Voice messages', {
count: voiceRecordings == null ? void 0 : voiceRecordings.length
});
}
}
if (onlyFiles && (files == null ? void 0 : files.length) === 1) {
var _files$;
return files == null || (_files$ = files[0]) == null ? void 0 : _files$.title;
}
return t('{{count}} Files', {
count: attachmentsLength
});
};
exports.useMessagePreviewText = useMessagePreviewText;
//# sourceMappingURL=useMessagePreviewText.js.map