From 96c3c2cc25e774484ad0eb2a2cb66e8cf3bf1f8b Mon Sep 17 00:00:00 2001 From: Toby Zerner Date: Mon, 18 May 2015 15:38:19 +0930 Subject: [PATCH] Show composer after discussion is reloaded following login --- .../core/js/forum/src/components/discussion-page.js | 6 +++++- .../js/forum/src/initializers/discussion-controls.js | 2 +- framework/core/js/lib/utils/evented.js | 11 +++++++++++ 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/framework/core/js/forum/src/components/discussion-page.js b/framework/core/js/forum/src/components/discussion-page.js index 4b61995fe..3d9a844f9 100644 --- a/framework/core/js/forum/src/components/discussion-page.js +++ b/framework/core/js/forum/src/components/discussion-page.js @@ -11,8 +11,10 @@ import LoadingIndicator from 'flarum/components/loading-indicator'; import DropdownSplit from 'flarum/components/dropdown-split'; import Separator from 'flarum/components/separator'; import listItems from 'flarum/helpers/list-items'; +import mixin from 'flarum/utils/mixin'; +import evented from 'flarum/utils/evented'; -export default class DiscussionPage extends Component { +export default class DiscussionPage extends mixin(Component, evented) { /** */ @@ -102,6 +104,8 @@ export default class DiscussionPage extends Component { this.streamContent.goToNumber(this.currentNear, true); app.setTitle(discussion.title()); + + this.trigger('loaded'); } onload(element, isInitialized, context) { diff --git a/framework/core/js/forum/src/initializers/discussion-controls.js b/framework/core/js/forum/src/initializers/discussion-controls.js index 7aee3afc9..f57b85222 100644 --- a/framework/core/js/forum/src/initializers/discussion-controls.js +++ b/framework/core/js/forum/src/initializers/discussion-controls.js @@ -25,7 +25,7 @@ export default function(app) { } else if (!app.session.user()) { app.modal.show(new LoginModal({ message: 'You must be logged in to do that.', - callback: this.replyAction.bind(this) + callback: () => app.current.one('loaded', this.replyAction.bind(this, goToLast, forceRefresh)) })); } } diff --git a/framework/core/js/lib/utils/evented.js b/framework/core/js/lib/utils/evented.js index 572900ef6..f3e477548 100644 --- a/framework/core/js/lib/utils/evented.js +++ b/framework/core/js/lib/utils/evented.js @@ -23,6 +23,17 @@ export default { this.getHandlers(event).push(handler); }, + /** + + */ + one(event, handler) { + var wrapper = function() { + handler.apply(this, arguments); + this.off(event, wrapper); + }; + this.getHandlers(event).push(wrapper); + }, + /** */