UNPKG

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