From d300cf9d0fb0b1dbf1318ee2da501156db709640 Mon Sep 17 00:00:00 2001 From: Jordan Vidrine <30537603+jordanvidrine@users.noreply.github.com> Date: Wed, 26 Mar 2025 10:47:52 -0500 Subject: [PATCH] UX: New topic card layout (#79) --- .../components/card/topic-activity-column.gjs | 52 +++ .../initializers/topic-list-columns.gjs | 43 ++- locales/en.yml | 10 +- scss/mobile-stuff.scss | 13 - scss/topic-cards.scss | 319 ++++++++++-------- spec/system/horizon_high_level_spec.rb | 7 +- 6 files changed, 249 insertions(+), 195 deletions(-) create mode 100644 javascripts/discourse/components/card/topic-activity-column.gjs diff --git a/javascripts/discourse/components/card/topic-activity-column.gjs b/javascripts/discourse/components/card/topic-activity-column.gjs new file mode 100644 index 0000000..fe671f9 --- /dev/null +++ b/javascripts/discourse/components/card/topic-activity-column.gjs @@ -0,0 +1,52 @@ +import Component from "@glimmer/component"; +import avatar from "discourse/helpers/avatar"; +import formatDate from "discourse/helpers/format-date"; +import { i18n } from "discourse-i18n"; +import gt from "truth-helpers/helpers/gt"; + +export default class TopicActivityColumn extends Component { + get displayUnreadPosts() { + return this.args.topic.unread_posts || this.args.topic.new_posts; + } + + get activityText() { + if (this.args.topic.posts_count > 1) { + return "user_replied"; + } else if (this.args.topic.posts_count === 1) { + return "user_posted"; + } + } + + +} diff --git a/javascripts/discourse/initializers/topic-list-columns.gjs b/javascripts/discourse/initializers/topic-list-columns.gjs index 0fa2e50..eb2c2ba 100644 --- a/javascripts/discourse/initializers/topic-list-columns.gjs +++ b/javascripts/discourse/initializers/topic-list-columns.gjs @@ -1,30 +1,28 @@ import { withPluginApi } from "discourse/lib/plugin-api"; -import TopicAuthorAvatarColumn from "../components/card/topic-author-avatar-column"; -import TopicAuthorColumn from "../components/card/topic-author-column"; +import TopicActivityColumn from "../components/card/topic-activity-column"; import TopicCategoryColumn from "../components/card/topic-category-column"; import TopicLikesColumn from "../components/card/topic-likes-column"; import TopicRepliesColumn from "../components/card/topic-replies-column"; import TopicStatusColumn from "../components/card/topic-status-column"; -const TopicAuthor =