UNPKG

stream-chat-react-native-core

Version:

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

101 lines 3.38 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 _useStateStore = require("../../hooks/useStateStore"); var selector = nextValue => ({ name: nextValue.name }); var useMessagePreviewText = ({ message }) => { var _useTranslationContex = (0, _TranslationContext.useTranslationContext)(), t = _useTranslationContex.t; var _useChatContext = (0, _ChatContext.useChatContext)(), client = _useChatContext.client; var poll = client.polls.fromState(message?.poll_id ?? ''); var _ref = (0, _useStateStore.useStateStore)(poll?.state, selector) ?? {}, pollName = _ref.name; var _useGroupedAttachment = (0, _useGroupedAttachments.useGroupedAttachments)(message?.attachments), giphys = _useGroupedAttachment.giphys, audios = _useGroupedAttachment.audios, images = _useGroupedAttachment.images, videos = _useGroupedAttachment.videos, files = _useGroupedAttachment.files, voiceRecordings = _useGroupedAttachment.voiceRecordings; var attachmentsLength = message?.attachments?.length; var onlyImages = images?.length && images?.length === attachmentsLength; var onlyVideos = videos?.length && videos?.length === attachmentsLength; var onlyFiles = files?.length && files?.length === attachmentsLength; var onlyAudio = audios?.length === attachmentsLength; var onlyVoiceRecordings = voiceRecordings?.length && voiceRecordings?.length === attachmentsLength; if (message?.type === 'deleted') { return t('Message deleted'); } if (pollName) { return pollName; } if (message?.shared_location) { if (message?.shared_location?.end_at && new Date(message?.shared_location?.end_at) > new Date()) { return t('Live Location'); } return t('Location'); } if (giphys?.length) { return t('Giphy'); } if (message?.text) { return message.text; } if (onlyImages) { if (images?.length === 1) { return t('Photo'); } else { return t('{{count}} Photos', { count: images?.length }); } } if (onlyVideos) { if (videos?.length === 1) { return t('Video'); } else { return t(`{{count}} Videos`, { count: videos?.length }); } } if (onlyAudio) { if (audios?.length === 1) { return t('Audio'); } else { return t('{{count}} Audios', { count: audios?.length }); } } if (onlyVoiceRecordings) { if (voiceRecordings?.length === 1) { return t(`Voice message ({{duration}})`, { duration: _dayjs.default.duration(voiceRecordings?.[0]?.duration ?? 0, 'seconds').format('m:ss') }); } else { return t('{{count}} Voice messages', { count: voiceRecordings?.length }); } } if (onlyFiles && files?.length === 1) { return files?.[0]?.title; } return t('{{count}} Files', { count: attachmentsLength }); }; exports.useMessagePreviewText = useMessagePreviewText; //# sourceMappingURL=useMessagePreviewText.js.map