From fe1cb262dc0e29301d700024eafcfa628a810c13 Mon Sep 17 00:00:00 2001 From: David Taylor Date: Wed, 21 May 2025 13:37:21 +0100 Subject: [PATCH] UX: Allow clicking anywhere on the topic-list card (#166) --- .../initializers/topic-list-columns.gjs | 28 +++++++++++++++++++ scss/topic-cards.scss | 1 + 2 files changed, 29 insertions(+) diff --git a/javascripts/discourse/initializers/topic-list-columns.gjs b/javascripts/discourse/initializers/topic-list-columns.gjs index bf58304..e1d8764 100644 --- a/javascripts/discourse/initializers/topic-list-columns.gjs +++ b/javascripts/discourse/initializers/topic-list-columns.gjs @@ -83,6 +83,34 @@ export default { api.registerValueTransformer("topic-list-item-mobile-layout", () => { return false; }); + + api.registerBehaviorTransformer( + "topic-list-item-click", + ({ context: { event }, next }) => { + if (event.target.closest("a, button, input")) { + return next(); + } + + event.preventDefault(); + event.stopPropagation(); + + const topicLink = event.target + .closest("tr") + .querySelector("a.raw-topic-link"); + + // Redespatch the click on the topic link, so that all key-handing is sorted + topicLink.dispatchEvent( + new MouseEvent("click", { + ctrlKey: event.ctrlKey, + metaKey: event.metaKey, + shiftKey: event.shiftKey, + button: event.button, + bubbles: true, + cancelable: true, + }) + ); + } + ); }); }, }; diff --git a/scss/topic-cards.scss b/scss/topic-cards.scss index 8c2905c..8e44ad4 100644 --- a/scss/topic-cards.scss +++ b/scss/topic-cards.scss @@ -40,6 +40,7 @@ grid-column-gap: 12px; grid-row-gap: 8px; border-radius: var(--d-border-radius); + cursor: pointer; td.main-link .link-top-line { grid-row: 1/2;