From 7ff9fe60615a8e0a9539e13f39a6a21465cc0a0b Mon Sep 17 00:00:00 2001 From: Renato Atilio Date: Wed, 6 Sep 2023 22:09:21 -0300 Subject: [PATCH] FIX: /login loop when categories is default homepage --- .../initializers/global-filter-preference.js | 7 +++---- .../acceptance/global-filter-preference-test.js | 11 +++++++++++ 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/assets/javascripts/discourse/initializers/global-filter-preference.js b/assets/javascripts/discourse/initializers/global-filter-preference.js index da64e74..a126b5b 100644 --- a/assets/javascripts/discourse/initializers/global-filter-preference.js +++ b/assets/javascripts/discourse/initializers/global-filter-preference.js @@ -1,4 +1,4 @@ -import { run } from "@ember/runloop"; +import { next, run } from "@ember/runloop"; import { ajax } from "discourse/lib/ajax"; import { popupAjaxError } from "discourse/lib/ajax-error"; @@ -134,10 +134,9 @@ export default { url = `/tags/intersection/${filterPref}/${additionalTags}`; router.transitionTo(url, null, { queryParams }); } else if (transition.to?.localName === "categories") { - transition.abort(); - router.transitionTo(`/categories?tag=${filterPref}`); + next(() => router.transitionTo(`/categories?tag=${filterPref}`)); } else if (transition.to?.name === "discovery.latest") { - router.transitionTo(`/tag/${filterPref}`, null, { queryParams }); + router.transitionTo("tag.show", filterPref, { queryParams }); } else { const categoryURL = categorySlug ? `s/c/${categorySlug}` : ""; url = `/tag${categoryURL}/${filterPref}`; diff --git a/test/javascripts/acceptance/global-filter-preference-test.js b/test/javascripts/acceptance/global-filter-preference-test.js index d760d54..5f540de 100644 --- a/test/javascripts/acceptance/global-filter-preference-test.js +++ b/test/javascripts/acceptance/global-filter-preference-test.js @@ -196,5 +196,16 @@ acceptance( "it redirects to the user's global_filter_preference" ); }); + + test("/login works with categories as default homepage", async function (assert) { + setDefaultHomepage("categories"); + await visit("/login"); + + assert.equal( + currentURL(), + "/categories?tag=support", + "it redirects to the user's global_filter_preference" + ); + }); } );