|
@ -66,6 +66,7 @@ const mapStateToProps = state => ({ |
|
|
isComposing: state.getIn(['compose', 'is_composing']), |
|
|
isComposing: state.getIn(['compose', 'is_composing']), |
|
|
hasComposingText: state.getIn(['compose', 'text']).trim().length !== 0, |
|
|
hasComposingText: state.getIn(['compose', 'text']).trim().length !== 0, |
|
|
hasMediaAttachments: state.getIn(['compose', 'media_attachments']).size > 0, |
|
|
hasMediaAttachments: state.getIn(['compose', 'media_attachments']).size > 0, |
|
|
|
|
|
canUploadMore: !state.getIn(['compose', 'media_attachments']).some(x => ['audio', 'video'].includes(x.get('type'))) && state.getIn(['compose', 'media_attachments']).size < 4, |
|
|
dropdownMenuIsOpen: state.getIn(['dropdown_menu', 'openId']) !== null, |
|
|
dropdownMenuIsOpen: state.getIn(['dropdown_menu', 'openId']) !== null, |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
@ -232,6 +233,7 @@ class UI extends React.PureComponent { |
|
|
isComposing: PropTypes.bool, |
|
|
isComposing: PropTypes.bool, |
|
|
hasComposingText: PropTypes.bool, |
|
|
hasComposingText: PropTypes.bool, |
|
|
hasMediaAttachments: PropTypes.bool, |
|
|
hasMediaAttachments: PropTypes.bool, |
|
|
|
|
|
canUploadMore: PropTypes.bool, |
|
|
location: PropTypes.object, |
|
|
location: PropTypes.object, |
|
|
intl: PropTypes.object.isRequired, |
|
|
intl: PropTypes.object.isRequired, |
|
|
dropdownMenuIsOpen: PropTypes.bool, |
|
|
dropdownMenuIsOpen: PropTypes.bool, |
|
@ -278,13 +280,14 @@ class UI extends React.PureComponent { |
|
|
this.dragTargets.push(e.target); |
|
|
this.dragTargets.push(e.target); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
if (e.dataTransfer && Array.from(e.dataTransfer.types).includes('Files')) { |
|
|
|
|
|
|
|
|
if (e.dataTransfer && Array.from(e.dataTransfer.types).includes('Files') && this.props.canUploadMore) { |
|
|
this.setState({ draggingOver: true }); |
|
|
this.setState({ draggingOver: true }); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
handleDragOver = (e) => { |
|
|
handleDragOver = (e) => { |
|
|
if (this.dataTransferIsText(e.dataTransfer)) return false; |
|
|
if (this.dataTransferIsText(e.dataTransfer)) return false; |
|
|
|
|
|
|
|
|
e.preventDefault(); |
|
|
e.preventDefault(); |
|
|
e.stopPropagation(); |
|
|
e.stopPropagation(); |
|
|
|
|
|
|
|
@ -299,12 +302,13 @@ class UI extends React.PureComponent { |
|
|
|
|
|
|
|
|
handleDrop = (e) => { |
|
|
handleDrop = (e) => { |
|
|
if (this.dataTransferIsText(e.dataTransfer)) return; |
|
|
if (this.dataTransferIsText(e.dataTransfer)) return; |
|
|
|
|
|
|
|
|
e.preventDefault(); |
|
|
e.preventDefault(); |
|
|
|
|
|
|
|
|
this.setState({ draggingOver: false }); |
|
|
this.setState({ draggingOver: false }); |
|
|
this.dragTargets = []; |
|
|
this.dragTargets = []; |
|
|
|
|
|
|
|
|
if (e.dataTransfer && e.dataTransfer.files.length >= 1) { |
|
|
|
|
|
|
|
|
if (e.dataTransfer && e.dataTransfer.files.length >= 1 && this.props.canUploadMore) { |
|
|
this.props.dispatch(uploadCompose(e.dataTransfer.files)); |
|
|
this.props.dispatch(uploadCompose(e.dataTransfer.files)); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|