FIX: Linking to `/new-topic` from `/latest`

FIX: Linking to /new-topic from /latest

/new-topic redirects back to /latest, so the ember router considers this to be a ‘refresh’. This triggers the resetParams() logic, which would cause the transition to abort, and the composer would never open.

This commit fixes the resetParams() logic so that it uses the default values, instead of setting everything to null. Therefore the transition is no longer aborted, and the composer opens successfully.

Unfortunately I have not been able to reproduce the issue in a QUnit test.

diff --git a/app/assets/javascripts/discourse/controllers/discovery/topics.js.es6 b/app/assets/javascripts/discourse/controllers/discovery/topics.js.es6
index 3f64d59..6cbce87 100644
--- a/app/assets/javascripts/discourse/controllers/discovery/topics.js.es6
+++ b/app/assets/javascripts/discourse/controllers/discovery/topics.js.es6
@@ -25,9 +25,10 @@ const controllerOpts = {
   expandAllPinned: false,
 
   resetParams() {
-    Object.keys(this.get("model.params") || {}).forEach(key =>
-      this.set(key, null)
-    );
+    Object.keys(this.get("model.params") || {}).forEach(key => {
+      // controllerOpts contains the default values for parameters, so use them. They might be null.
+      this.set(key, controllerOpts[key]);
+    });
   },
 
   actions: {

GitHub sha: 583226d2

2 Likes

This commit has been mentioned on Discourse Meta. There might be relevant details there: