parent
396c5dea87
commit
8266d224ef
|
@ -81,6 +81,7 @@ function mapStateToProps (state) {
|
||||||
focusDate: state.getIn(['compose', 'focusDate']),
|
focusDate: state.getIn(['compose', 'focusDate']),
|
||||||
caretPosition: state.getIn(['compose', 'caretPosition']),
|
caretPosition: state.getIn(['compose', 'caretPosition']),
|
||||||
isSubmitting: state.getIn(['compose', 'is_submitting']),
|
isSubmitting: state.getIn(['compose', 'is_submitting']),
|
||||||
|
isChangingUpload: state.getIn(['compose', 'is_changing_upload']),
|
||||||
isUploading: state.getIn(['compose', 'is_uploading']),
|
isUploading: state.getIn(['compose', 'is_uploading']),
|
||||||
layout: state.getIn(['local_settings', 'layout']),
|
layout: state.getIn(['local_settings', 'layout']),
|
||||||
media: state.getIn(['compose', 'media_attachments']),
|
media: state.getIn(['compose', 'media_attachments']),
|
||||||
|
@ -228,6 +229,7 @@ const handlers = {
|
||||||
onChangeText,
|
onChangeText,
|
||||||
onSubmit,
|
onSubmit,
|
||||||
isSubmitting,
|
isSubmitting,
|
||||||
|
isChangingUpload,
|
||||||
isUploading,
|
isUploading,
|
||||||
media,
|
media,
|
||||||
anyMedia,
|
anyMedia,
|
||||||
|
@ -243,7 +245,7 @@ const handlers = {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Submit disabled:
|
// Submit disabled:
|
||||||
if (isSubmitting || isUploading || (!text.trim().length && !anyMedia)) {
|
if (isSubmitting || isUploading || isChangingUpload || (!text.trim().length && !anyMedia)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -386,6 +388,7 @@ class Composer extends React.Component {
|
||||||
anyMedia,
|
anyMedia,
|
||||||
intl,
|
intl,
|
||||||
isSubmitting,
|
isSubmitting,
|
||||||
|
isChangingUpload,
|
||||||
isUploading,
|
isUploading,
|
||||||
layout,
|
layout,
|
||||||
media,
|
media,
|
||||||
|
@ -418,7 +421,7 @@ class Composer extends React.Component {
|
||||||
spoilersAlwaysOn,
|
spoilersAlwaysOn,
|
||||||
} = this.props;
|
} = this.props;
|
||||||
|
|
||||||
let disabledButton = isSubmitting || isUploading || (!text.trim().length && !anyMedia);
|
let disabledButton = isSubmitting || isUploading || isChangingUpload || (!text.trim().length && !anyMedia);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className='composer'>
|
<div className='composer'>
|
||||||
|
@ -518,6 +521,7 @@ Composer.propTypes = {
|
||||||
focusDate: PropTypes.instanceOf(Date),
|
focusDate: PropTypes.instanceOf(Date),
|
||||||
caretPosition: PropTypes.number,
|
caretPosition: PropTypes.number,
|
||||||
isSubmitting: PropTypes.bool,
|
isSubmitting: PropTypes.bool,
|
||||||
|
isChangingUpload: PropTypes.bool,
|
||||||
isUploading: PropTypes.bool,
|
isUploading: PropTypes.bool,
|
||||||
layout: PropTypes.string,
|
layout: PropTypes.string,
|
||||||
media: ImmutablePropTypes.list,
|
media: ImmutablePropTypes.list,
|
||||||
|
|
|
@ -67,6 +67,7 @@ const initialState = ImmutableMap({
|
||||||
in_reply_to: null,
|
in_reply_to: null,
|
||||||
is_submitting: false,
|
is_submitting: false,
|
||||||
is_uploading: false,
|
is_uploading: false,
|
||||||
|
is_changing_upload: false,
|
||||||
progress: 0,
|
progress: 0,
|
||||||
media_attachments: ImmutableList(),
|
media_attachments: ImmutableList(),
|
||||||
suggestion_token: null,
|
suggestion_token: null,
|
||||||
|
@ -130,6 +131,7 @@ function clearAll(state) {
|
||||||
map.set('spoiler', false);
|
map.set('spoiler', false);
|
||||||
map.set('spoiler_text', '');
|
map.set('spoiler_text', '');
|
||||||
map.set('is_submitting', false);
|
map.set('is_submitting', false);
|
||||||
|
map.set('is_changing_upload', false);
|
||||||
map.set('in_reply_to', null);
|
map.set('in_reply_to', null);
|
||||||
map.update(
|
map.update(
|
||||||
'advanced_options',
|
'advanced_options',
|
||||||
|
@ -341,13 +343,15 @@ export default function compose(state = initialState, action) {
|
||||||
map.set('idempotencyKey', uuid());
|
map.set('idempotencyKey', uuid());
|
||||||
});
|
});
|
||||||
case COMPOSE_SUBMIT_REQUEST:
|
case COMPOSE_SUBMIT_REQUEST:
|
||||||
case COMPOSE_UPLOAD_CHANGE_REQUEST:
|
|
||||||
return state.set('is_submitting', true);
|
return state.set('is_submitting', true);
|
||||||
|
case COMPOSE_UPLOAD_CHANGE_REQUEST:
|
||||||
|
return state.set('is_changing_upload', true);
|
||||||
case COMPOSE_SUBMIT_SUCCESS:
|
case COMPOSE_SUBMIT_SUCCESS:
|
||||||
return action.status && state.getIn(['advanced_options', 'threaded_mode']) ? continueThread(state, action.status) : clearAll(state);
|
return action.status && state.getIn(['advanced_options', 'threaded_mode']) ? continueThread(state, action.status) : clearAll(state);
|
||||||
case COMPOSE_SUBMIT_FAIL:
|
case COMPOSE_SUBMIT_FAIL:
|
||||||
case COMPOSE_UPLOAD_CHANGE_FAIL:
|
|
||||||
return state.set('is_submitting', false);
|
return state.set('is_submitting', false);
|
||||||
|
case COMPOSE_UPLOAD_CHANGE_FAIL:
|
||||||
|
return state.set('is_changing_upload', false);
|
||||||
case COMPOSE_UPLOAD_REQUEST:
|
case COMPOSE_UPLOAD_REQUEST:
|
||||||
return state.set('is_uploading', true);
|
return state.set('is_uploading', true);
|
||||||
case COMPOSE_UPLOAD_SUCCESS:
|
case COMPOSE_UPLOAD_SUCCESS:
|
||||||
|
@ -393,7 +397,7 @@ export default function compose(state = initialState, action) {
|
||||||
return insertEmoji(state, action.position, action.emoji);
|
return insertEmoji(state, action.position, action.emoji);
|
||||||
case COMPOSE_UPLOAD_CHANGE_SUCCESS:
|
case COMPOSE_UPLOAD_CHANGE_SUCCESS:
|
||||||
return state
|
return state
|
||||||
.set('is_submitting', false)
|
.set('is_changing_upload', false)
|
||||||
.update('media_attachments', list => list.map(item => {
|
.update('media_attachments', list => list.map(item => {
|
||||||
if (item.get('id') === action.media.id) {
|
if (item.get('id') === action.media.id) {
|
||||||
return fromJS(action.media);
|
return fromJS(action.media);
|
||||||
|
|
Loading…
Reference in New Issue