diff --git a/app/soapbox/features/chats/components/chat_box.js b/app/soapbox/features/chats/components/chat_box.js index a6befbfd2..bde2f9dbf 100644 --- a/app/soapbox/features/chats/components/chat_box.js +++ b/app/soapbox/features/chats/components/chat_box.js @@ -13,6 +13,8 @@ import ChatMessageList from './chat_message_list'; import UploadButton from 'soapbox/features/compose/components/upload_button'; import { uploadMedia } from 'soapbox/actions/media'; import UploadProgress from 'soapbox/features/compose/components/upload_progress'; +import { truncateFilename } from 'soapbox/utils/media'; +import IconButton from 'soapbox/components/icon_button'; const messages = defineMessages({ placeholder: { id: 'chat_box.input.placeholder', defaultMessage: 'Send a messageā€¦' }, @@ -24,6 +26,8 @@ const mapStateToProps = (state, { chatId }) => ({ chatMessageIds: state.getIn(['chat_message_lists', chatId], ImmutableOrderedSet()), }); +const fileKeyGen = () => Math.floor((Math.random() * 0x10000)); + export default @connect(mapStateToProps) @injectIntl class ChatBox extends ImmutablePureComponent { @@ -43,6 +47,7 @@ class ChatBox extends ImmutablePureComponent { attachment: undefined, isUploading: false, uploadProgress: 0, + resetFileKey: fileKeyGen(), }) state = this.initialState() @@ -122,6 +127,10 @@ class ChatBox extends ImmutablePureComponent { this.markRead(); } + handleRemoveFile = (e) => { + this.setState({ attachment: undefined, resetFileKey: fileKeyGen() }); + } + onUploadProgress = (e) => { const { loaded, total } = e; this.setState({ uploadProgress: loaded/total }); @@ -148,14 +157,19 @@ class ChatBox extends ImmutablePureComponent { return (
- {attachment.preview_url} +
+ {truncateFilename(attachment.preview_url, 20)} +
+
+ +
); } render() { const { chatMessageIds, chatId, intl } = this.props; - const { content, isUploading, uploadProgress } = this.state; + const { content, isUploading, uploadProgress, resetFileKey } = this.state; if (!chatMessageIds) return null; return ( @@ -164,7 +178,7 @@ class ChatBox extends ImmutablePureComponent { {this.renderAttachment()}
- +