diff --git a/js/src/forum/ForumApplication.js b/js/src/forum/ForumApplication.js index 57f74ce53..b034d350e 100644 --- a/js/src/forum/ForumApplication.js +++ b/js/src/forum/ForumApplication.js @@ -84,7 +84,7 @@ export default class ForumApplication extends Application { * * @type {DiscussionListState} */ - this.discussions = new DiscussionListState({ forumApp: this }); + this.discussions = new DiscussionListState({}, this); /** * @deprecated beta 14, remove in beta 15. diff --git a/js/src/forum/components/DiscussionsUserPage.js b/js/src/forum/components/DiscussionsUserPage.js index 616f01ea9..e909a7d1e 100644 --- a/js/src/forum/components/DiscussionsUserPage.js +++ b/js/src/forum/components/DiscussionsUserPage.js @@ -1,5 +1,6 @@ import UserPage from './UserPage'; import DiscussionList from './DiscussionList'; +import DiscussionListState from '../states/DiscussionListState'; /** * The `DiscussionsUserPage` component shows a discussion list inside of a user @@ -12,16 +13,18 @@ export default class DiscussionsUserPage extends UserPage { this.loadUser(m.route.param('username')); } + show(user) { + super.show(user); + + this.state = new DiscussionListState({ + q: 'author:' + user.username(), + sort: 'newest', + }); + + this.state.refresh(); + } + content() { - return ( -
- {DiscussionList.component({ - params: { - q: 'author:' + this.user.username(), - sort: 'newest', - }, - })} -
- ); + return
{DiscussionList.component({ state: this.state })}
; } } diff --git a/js/src/forum/states/DiscussionListState.js b/js/src/forum/states/DiscussionListState.js index 38a87bf3d..787560507 100644 --- a/js/src/forum/states/DiscussionListState.js +++ b/js/src/forum/states/DiscussionListState.js @@ -1,8 +1,8 @@ export default class DiscussionListState { - constructor({ params = {}, forumApp = app } = {}) { + constructor(params = {}, app = window.app) { this.params = params; - this.app = forumApp; + this.app = app; this.discussions = [];