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

This commit is contained in:
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) { return function (dispatch, getState) {
let status = getState().getIn(['compose', 'text'], ''); let status = getState().getIn(['compose', 'text'], '');
let media = getState().getIn(['compose', 'media_attachments']); 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'); insertIfOnline('home');
if (response.data.in_reply_to_id === null && response.data.visibility === 'public') { 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) { onSelectSuggestion(position, token, suggestion) {
dispatch(selectComposeSuggestion(position, token, suggestion)); dispatch(selectComposeSuggestion(position, token, suggestion));
}, },
onMediaDescriptionConfirm() { onMediaDescriptionConfirm(routerHistory) {
dispatch(openModal('CONFIRM', { dispatch(openModal('CONFIRM', {
message: intl.formatMessage(messages.missingDescriptionMessage), message: intl.formatMessage(messages.missingDescriptionMessage),
confirm: intl.formatMessage(messages.missingDescriptionConfirm), confirm: intl.formatMessage(messages.missingDescriptionConfirm),
onConfirm: () => dispatch(submitCompose()), onConfirm: () => dispatch(submitCompose(routerHistory)),
})); }));
}, },
onSubmit() { onSubmit(routerHistory) {
dispatch(submitCompose()); dispatch(submitCompose(routerHistory));
}, },
onUndoUpload(id) { onUndoUpload(id) {
dispatch(undoUploadCompose(id)); dispatch(undoUploadCompose(id));
@ -256,9 +256,9 @@ const handlers = {
inputs[firstWithoutDescription].focus(); inputs[firstWithoutDescription].focus();
} }
} }
onMediaDescriptionConfirm(); onMediaDescriptionConfirm(this.context.router ? this.context.router.history : null);
} else if (onSubmit) { } else if (onSubmit) {
onSubmit(); onSubmit(this.context.router ? this.context.router.history : null);
} }
}, },
@ -563,6 +563,10 @@ Composer.propTypes = {
onMediaDescriptionConfirm: PropTypes.func, onMediaDescriptionConfirm: PropTypes.func,
}; };
Composer.contextTypes = {
router: PropTypes.object,
};
// Connecting and export. // Connecting and export.
export { Composer as WrappedComponent }; export { Composer as WrappedComponent };
export default wrap(Composer, mapStateToProps, mapDispatchToProps, true); export default wrap(Composer, mapStateToProps, mapDispatchToProps, true);