UX: Improvements to posts route (#30968)

This update makes some small improvements to the posts route front-end.
Specifically, it adds a title to the page, and it improves the
positioning of expand/collapse caret.
This commit is contained in:
Keegan George 2025-01-24 12:04:43 +09:00 committed by GitHub
parent a8c89cbc79
commit 5d4bb4b54e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 56 additions and 5 deletions

View File

@ -3,6 +3,7 @@ import { action } from "@ember/object";
import RouteTemplate from "ember-route-template";
import PostList from "discourse/components/post-list";
import Posts from "discourse/models/posts";
import { i18n } from "discourse-i18n";
export default RouteTemplate(
class extends Component {
@ -15,11 +16,14 @@ export default RouteTemplate(
}
<template>
<PostList
@posts={{@model}}
@fetchMorePosts={{this.loadMorePosts}}
@titlePath="topic_html_title"
/>
<section class="posts-page">
<h2 class="posts-page__title">{{i18n "post_list.title"}}</h2>
<PostList
@posts={{@model}}
@fetchMorePosts={{this.loadMorePosts}}
@titlePath="topic_html_title"
/>
</section>
</template>
}
);

View File

@ -34,6 +34,13 @@
}
}
.expand-item,
.collapse-item {
padding: 0;
margin-right: 0.75rem;
margin-top: 0.15rem;
}
.stream-topic-title {
overflow-wrap: anywhere;
}

View File

@ -3763,6 +3763,7 @@ en:
deleted_by_author_simple: "(topic deleted by author)"
post_list:
title: "Latest posts"
empty: "There are no posts"
aria_post_number: "%{title} - post #%{postNumber}"

View File

@ -0,0 +1,22 @@
# frozen_string_literal: true
module PageObjects
module Pages
class Posts < PageObjects::Pages::Base
POSTS_PAGE_SELECTOR = ".posts-page"
def visit
page.visit("/posts")
self
end
def has_page_title?
page.find("#{POSTS_PAGE_SELECTOR} .posts-page__title")
end
def has_posts?(count)
page.has_css?("#{POSTS_PAGE_SELECTOR} .post-list .post-list-item", count: count)
end
end
end
end

View File

@ -0,0 +1,17 @@
# frozen_string_literal: true
describe "Posts page", type: :system do
fab!(:post)
fab!(:post_2) { Fabricate(:post) }
fab!(:post_3) { Fabricate(:post) }
fab!(:user)
let(:posts_page) { PageObjects::Pages::Posts.new }
before { sign_in(user) }
it "renders the posts page with posts" do
posts_page.visit
expect(posts_page).to have_page_title
expect(posts_page).to have_posts(3)
end
end