]> cat aescling's git repositories - mastodon.git/commitdiff
On mobile, go back in browser history upon posting, unless threaded mode is enabled
authorThibaut Girka <thib@sitedethib.com>
Thu, 13 Dec 2018 15:50:37 +0000 (16:50 +0100)
committerThibG <thib@sitedethib.com>
Fri, 14 Dec 2018 22:56:53 +0000 (23:56 +0100)
app/javascript/flavours/glitch/actions/compose.js
app/javascript/flavours/glitch/features/composer/index.js

index 58f2b3786f9609092ea3e6a559da1e547195b078..d53d269249c1897ec430eb4a5366a57ad5861f4c 100644 (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') {
index 029b11a36911611d5a8c731d9c358f48916e1fc1..40eae1f539a1f1ccadadcd84dd82e279e4735ea8 100644 (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);