stream-chat-react-native-core
Version:
The official React Native and Expo components for Stream Chat, a service for building chat applications
59 lines • 2.1 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.useMessagePreviewIcon = void 0;
var _ComponentsContext = require("../../contexts/componentsContext/ComponentsContext");
var _useGroupedAttachments = require("../../hooks/messagePreview/useGroupedAttachments");
var _types = require("../../types/types");
var useMessagePreviewIcon = ({
message
}) => {
var _useComponentsContext = (0, _ComponentsContext.useComponentsContext)(),
icons = _useComponentsContext.icons;
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;
if (!message) {
return null;
}
var onlyImages = images?.length && images?.length === attachmentsLength;
var onlyAudio = audios?.length && audios?.length === attachmentsLength;
var onlyVideos = videos?.length && videos?.length === attachmentsLength;
var onlyVoiceRecordings = voiceRecordings?.length && voiceRecordings?.length === attachmentsLength;
var hasLink = message?.attachments?.some(attachment => attachment.type === _types.FileTypes.Image && attachment.og_scrape_url);
if (message.type === 'deleted') {
return icons.CircleBan;
}
if (message.poll_id) {
return icons.PollIcon;
}
if (message.shared_location) {
return icons.MapPin;
}
if (hasLink) {
return icons.Link;
}
if (onlyAudio || onlyVoiceRecordings) {
return icons.Mic;
}
if (onlyVideos) {
return icons.VideoIcon;
}
if (onlyImages) {
return icons.PhotoIcon;
}
if (giphys?.length) {
return icons.File;
}
if (files?.length || images?.length || videos?.length || audios?.length) {
return icons.File;
}
return null;
};
exports.useMessagePreviewIcon = useMessagePreviewIcon;
//# sourceMappingURL=useMessagePreviewIcon.js.map