UNPKG

stream-chat-react

Version:

React components to create chat conversations or livestream style chat

31 lines (30 loc) 2.23 kB
import React from 'react'; import { FileIcon } from 'react-file-utils'; import { DownloadButton } from './DownloadButton'; import { FileSizeIndicator } from './FileSizeIndicator'; import { SafeAnchor } from '../SafeAnchor/SafeAnchor'; import { useChatContext } from '../../context/ChatContext'; var UnMemoizedFileAttachmentV1 = function (_a) { var attachment = _a.attachment; return (React.createElement("div", { className: 'str-chat__message-attachment-file--item', "data-testid": 'attachment-file' }, React.createElement(FileIcon, { big: true, mimeType: attachment.mime_type, size: 30 }), React.createElement("div", { className: 'str-chat__message-attachment-file--item-text' }, React.createElement(SafeAnchor, { download: true, href: attachment.asset_url, target: '_blank' }, attachment.title), React.createElement(FileSizeIndicator, { fileSize: attachment.file_size })))); }; var UnMemoizedFileAttachmentV2 = function (_a) { var attachment = _a.attachment; return (React.createElement("div", { className: 'str-chat__message-attachment-file--item', "data-testid": 'attachment-file' }, React.createElement(FileIcon, { className: 'str-chat__file-icon', mimeType: attachment.mime_type, version: '2' }), React.createElement("div", { className: 'str-chat__message-attachment-file--item-text' }, React.createElement("div", { className: 'str-chat__message-attachment-file--item-first-row' }, React.createElement("div", { className: 'str-chat__message-attachment-file--item-name', "data-testid": 'file-title' }, attachment.title), React.createElement(DownloadButton, { assetUrl: attachment.asset_url })), React.createElement(FileSizeIndicator, { fileSize: attachment.file_size })))); }; var UnMemoizedFileAttachment = function (_a) { var attachment = _a.attachment; var themeVersion = useChatContext('FileAttachment').themeVersion; return themeVersion === '2' ? (React.createElement(UnMemoizedFileAttachmentV2, { attachment: attachment })) : (React.createElement(UnMemoizedFileAttachmentV1, { attachment: attachment })); }; export var FileAttachment = React.memo(UnMemoizedFileAttachment);