On mobile, go back in browser history upon posting, unless threaded mode is enabled

signup-info-prompt
Thibaut Girka 2018-12-13 16:50:37 +01:00 committed by ThibG
parent 35b2ba5030
commit f0505a5b2e
2 changed files with 17 additions and 7 deletions

View File

@ -116,7 +116,7 @@ export function directCompose(account, router) {
};
};
export function submitCompose() {
export function submitCompose(routerHistory) {
return function (dispatch, getState) {
let status = getState().getIn(['compose', 'text'], '');
let media = getState().getIn(['compose', 'media_attachments']);
@ -158,6 +158,12 @@ export function submitCompose() {
}
};
if (routerHistory && routerHistory.location.pathname === '/statuses/new'
&& window.history.state
&& !getState().getIn(['compose', 'advanced_options', 'threaded_mode'])) {
routerHistory.goBack();
}
insertIfOnline('home');
if (response.data.in_reply_to_id === null && response.data.visibility === 'public') {

View File

@ -159,15 +159,15 @@ const mapDispatchToProps = (dispatch, { intl }) => ({
onSelectSuggestion(position, token, suggestion) {
dispatch(selectComposeSuggestion(position, token, suggestion));
},
onMediaDescriptionConfirm() {
onMediaDescriptionConfirm(routerHistory) {
dispatch(openModal('CONFIRM', {
message: intl.formatMessage(messages.missingDescriptionMessage),
confirm: intl.formatMessage(messages.missingDescriptionConfirm),
onConfirm: () => dispatch(submitCompose()),
onConfirm: () => dispatch(submitCompose(routerHistory)),
}));
},
onSubmit() {
dispatch(submitCompose());
onSubmit(routerHistory) {
dispatch(submitCompose(routerHistory));
},
onUndoUpload(id) {
dispatch(undoUploadCompose(id));
@ -256,9 +256,9 @@ const handlers = {
inputs[firstWithoutDescription].focus();
}
}
onMediaDescriptionConfirm();
onMediaDescriptionConfirm(this.context.router ? this.context.router.history : null);
} else if (onSubmit) {
onSubmit();
onSubmit(this.context.router ? this.context.router.history : null);
}
},
@ -563,6 +563,10 @@ Composer.propTypes = {
onMediaDescriptionConfirm: PropTypes.func,
};
Composer.contextTypes = {
router: PropTypes.object,
};
// Connecting and export.
export { Composer as WrappedComponent };
export default wrap(Composer, mapStateToProps, mapDispatchToProps, true);