stream-chat-react-native-core
Version:
The official React Native and Expo components for Stream Chat, a service for building chat applications
60 lines • 2.66 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 _message$attachments, _message$attachments2;
var _useComponentsContext = (0, _ComponentsContext.useComponentsContext)(),
icons = _useComponentsContext.icons;
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;
if (!message) {
return null;
}
var onlyImages = (images == null ? void 0 : images.length) && (images == null ? void 0 : images.length) === attachmentsLength;
var onlyAudio = (audios == null ? void 0 : audios.length) && (audios == null ? void 0 : audios.length) === attachmentsLength;
var onlyVideos = (videos == null ? void 0 : videos.length) && (videos == null ? void 0 : videos.length) === attachmentsLength;
var onlyVoiceRecordings = (voiceRecordings == null ? void 0 : voiceRecordings.length) && (voiceRecordings == null ? void 0 : voiceRecordings.length) === attachmentsLength;
var hasLink = message == null || (_message$attachments2 = message.attachments) == null ? void 0 : _message$attachments2.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 != null && giphys.length) {
return icons.File;
}
if (files != null && files.length || images != null && images.length || videos != null && videos.length || audios != null && audios.length) {
return icons.File;
}
return null;
};
exports.useMessagePreviewIcon = useMessagePreviewIcon;
//# sourceMappingURL=useMessagePreviewIcon.js.map