From 09a6c1f3a608d75b4bb90e54daf68a065562797a Mon Sep 17 00:00:00 2001 From: Nat Date: Fri, 26 Dec 2025 18:34:34 +0800 Subject: [PATCH 1/2] DEV: Update tag_id usage to tag_name where a tag's name is referenced --- .discourse-compatibility | 1 + .../discourse/services/topic-thumbnails.js | 18 +++++++++--------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/.discourse-compatibility b/.discourse-compatibility index ca07b14..c350ce6 100644 --- a/.discourse-compatibility +++ b/.discourse-compatibility @@ -1,3 +1,4 @@ +< 2025.12.0-latest: 9bca25f668deeec39c7096c15779e54af5a66ff1 < 3.6.0.beta1-dev: f3249a84e2857ba7312888566d1fd8e4aa35f0cd < 3.5.0.beta5-dev: 858687bdd6438fa8f638b5048dd1999c89277fe7 < 3.5.0.beta3-dev: fcb4a13c4b5a1b340de3d60f6b4a0d0a1bf37bbc diff --git a/javascripts/discourse/services/topic-thumbnails.js b/javascripts/discourse/services/topic-thumbnails.js index 8ef460a..3c92e8d 100644 --- a/javascripts/discourse/services/topic-thumbnails.js +++ b/javascripts/discourse/services/topic-thumbnails.js @@ -57,13 +57,13 @@ export default class TopicThumbnailService extends Service { } @dependentKeyCompat - get viewingTagId() { - return this.discovery.tag?.id; + get viewingTagName() { + return this.discovery.tag?.name; } @discourseComputed( "viewingCategoryId", - "viewingTagId", + "viewingTagName", "router.currentRoute.metadata.customThumbnailMode", "isTopicListRoute", "isTopicRoute", @@ -71,7 +71,7 @@ export default class TopicThumbnailService extends Service { ) displayMode( viewingCategoryId, - viewingTagId, + viewingTagName, customThumbnailMode, isTopicListRoute, isTopicRoute, @@ -90,15 +90,15 @@ export default class TopicThumbnailService extends Service { return "grid"; } else if (listCategories.includes(viewingCategoryId)) { return "list"; - } else if (masonryTags.includes(viewingTagId)) { + } else if (masonryTags.includes(viewingTagName)) { return "masonry"; - } else if (minimalGridTags.includes(viewingTagId)) { + } else if (minimalGridTags.includes(viewingTagName)) { return "minimal-grid"; - } else if (blogStyleTags.includes(viewingTagId)) { + } else if (blogStyleTags.includes(viewingTagName)) { return "blog-style"; - } else if (gridTags.includes(viewingTagId)) { + } else if (gridTags.includes(viewingTagName)) { return "grid"; - } else if (listTags.includes(viewingTagId)) { + } else if (listTags.includes(viewingTagName)) { return "list"; } else if (isTopicRoute && settings.suggested_topics_mode) { return settings.suggested_topics_mode; From d7551df35e302fdff3095a6e84aa41878e38082c Mon Sep 17 00:00:00 2001 From: Nat Date: Fri, 26 Dec 2025 20:47:51 +0800 Subject: [PATCH 2/2] add test that will pass after merge --- test/acceptance/tag-thumbnail-mode-test.js | 32 ++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 test/acceptance/tag-thumbnail-mode-test.js diff --git a/test/acceptance/tag-thumbnail-mode-test.js b/test/acceptance/tag-thumbnail-mode-test.js new file mode 100644 index 0000000..86461fd --- /dev/null +++ b/test/acceptance/tag-thumbnail-mode-test.js @@ -0,0 +1,32 @@ +import { getOwner } from "@ember/owner"; +import { visit } from "@ember/test-helpers"; +import { test } from "qunit"; +import { cloneJSON } from "discourse/lib/object"; +import discoveryFixture from "discourse/tests/fixtures/discovery-fixtures"; +import { acceptance } from "discourse/tests/helpers/qunit-helpers"; + +acceptance("topic thumbnails | tag route integration", function (needs) { + needs.settings({ tagging_enabled: true }); + + needs.pretender((server, helper) => { + server.get("/tag/important/l/latest.json", () => { + return helper.response( + cloneJSON(discoveryFixture["/tag/important/l/latest.json"]) + ); + }); + }); + + test("service correctly identifies tag name from route", async function (assert) { + await visit("/tag/important"); + + const topicThumbnailsService = getOwner(this).lookup( + "service:topic-thumbnails" + ); + + assert.strictEqual( + topicThumbnailsService.viewingTagName, + "important", + "viewingTagName returns the tag name (not id) from the route" + ); + }); +});