Skip to content

Commit 8e68082

Browse files
authored
DEV: Modernize + adopt PostList component (#139)
This update makes use of core's new `PostList` component (discourse/discourse#30604) to show the follow post feed. Additionally, it modernizes the route/controller around calling this component to make use of `RouteTemplate` instead of a route, template, and controller. Tests already exist, but we update classes used in the test to be more fitting for the new component.
1 parent 3422d5b commit 8e68082

File tree

8 files changed

+51
-35
lines changed

8 files changed

+51
-35
lines changed

assets/javascripts/discourse/components/follow-feed-post.hbs

Lines changed: 0 additions & 1 deletion
This file was deleted.

assets/javascripts/discourse/components/follow-feed-post.js

Lines changed: 0 additions & 8 deletions
This file was deleted.

assets/javascripts/discourse/components/follow-post-stream.hbs

Lines changed: 0 additions & 3 deletions
This file was deleted.

assets/javascripts/discourse/components/follow-post-stream.js

Lines changed: 0 additions & 3 deletions
This file was deleted.

assets/javascripts/discourse/controllers/feed.js

Lines changed: 0 additions & 6 deletions
This file was deleted.
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
import Component from "@glimmer/component";
2+
import { action } from "@ember/object";
3+
import { service } from "@ember/service";
4+
import RouteTemplate from "ember-route-template";
5+
import PostList from "discourse/components/post-list";
6+
import { i18n } from "discourse-i18n";
7+
8+
export default RouteTemplate(
9+
class extends Component {
10+
@service currentUser;
11+
12+
get viewingSelf() {
13+
return this.args.model.user.id === this.currentUser.id;
14+
}
15+
16+
@action
17+
async loadMore() {
18+
if (!this.args.model.canLoadMore) {
19+
return [];
20+
}
21+
22+
await this.args.model.findItems();
23+
24+
return this.args.model.content;
25+
}
26+
27+
<template>
28+
{{#if @model.noContent}}
29+
{{#if this.viewingSelf}}
30+
<div class="alert alert-info">{{i18n
31+
"user.feed.empty_feed_you"
32+
}}</div>
33+
{{else}}
34+
<div class="alert alert-info">
35+
{{i18n "user.feed.empty_feed_other" username=@model.user.username}}
36+
</div>
37+
{{/if}}
38+
{{else}}
39+
<PostList
40+
@urlPath="postUrl"
41+
@posts={{@model.content}}
42+
@fetchMorePosts={{this.loadMore}}
43+
@additionalItemClasses="follow-stream-item"
44+
class="follow-stream"
45+
/>
46+
{{/if}}
47+
</template>
48+
}
49+
);

assets/javascripts/discourse/templates/feed.hbs

Lines changed: 0 additions & 12 deletions
This file was deleted.

test/javascripts/acceptance/follow-posts-feed-test.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ acceptance("Discourse Follow - Follow Posts Feed", function (needs) {
158158

159159
test("posts are shown", async (assert) => {
160160
await visit("/u/eviltrout/follow/feed");
161-
const posts = queryAll(".user-follows-tab .user-stream-item");
161+
const posts = queryAll(".follow-stream .follow-stream-item");
162162
assert.equal(
163163
posts.length,
164164
3,
@@ -173,7 +173,7 @@ acceptance("Discourse Follow - Follow Posts Feed", function (needs) {
173173

174174
test("long posts excerpt", async (assert) => {
175175
await visit("/u/eviltrout/follow/feed");
176-
const posts = queryAll(".user-follows-tab .user-stream-item");
176+
const posts = queryAll(".follow-stream .follow-stream-item");
177177
assert.ok(
178178
exists(posts[2].querySelector(".expand-item")),
179179
"long posts are first rendered collapsed"

0 commit comments

Comments
 (0)