1
0
mirror of https://github.com/flarum/core.git synced 2025-07-16 14:26:25 +02:00

Clean composer promises (#1439)

* Remove unused login promise code

* Make promise usage consistent across composer action methods
This commit is contained in:
Clark Winkelmann
2018-09-22 06:55:19 +02:00
committed by Toby Zerner
parent d70a75a2d8
commit e407c9472a
3 changed files with 25 additions and 27 deletions

View File

@ -159,7 +159,7 @@ export default class IndexPage extends Page {
icon: 'fas fa-edit', icon: 'fas fa-edit',
className: 'Button Button--primary IndexPage-newDiscussion', className: 'Button Button--primary IndexPage-newDiscussion',
itemClassName: 'App-primaryControl', itemClassName: 'App-primaryControl',
onclick: this.newDiscussion.bind(this), onclick: this.newDiscussionAction.bind(this),
disabled: !canStartDiscussion disabled: !canStartDiscussion
}) })
); );
@ -339,43 +339,29 @@ export default class IndexPage extends Page {
} }
/** /**
* Log the user in and then open the composer for a new discussion. * Open the composer for a new discussion or prompt the user to login.
* *
* @return {Promise} * @return {Promise}
*/ */
newDiscussion() { newDiscussionAction() {
const deferred = m.deferred(); const deferred = m.deferred();
if (app.session.user) { if (app.session.user) {
this.composeNewDiscussion(deferred); const component = new DiscussionComposer({ user: app.session.user });
app.composer.load(component);
app.composer.show();
deferred.resolve(component);
} else { } else {
app.modal.show( deferred.reject();
new LogInModal({
onlogin: this.composeNewDiscussion.bind(this, deferred) app.modal.show(new LogInModal());
})
);
} }
return deferred.promise; return deferred.promise;
} }
/**
* Initialize the composer for a new discussion.
*
* @param {Deferred} deferred
* @return {Promise}
*/
composeNewDiscussion(deferred) {
const component = new DiscussionComposer({user: app.session.user});
app.composer.load(component);
app.composer.show();
deferred.resolve(component);
return deferred.promise;
}
/** /**
* Mark all discussions as read. * Mark all discussions as read.
* *

View File

@ -171,6 +171,8 @@ export default {
deferred.reject(); deferred.reject();
} }
} else { } else {
deferred.reject();
app.modal.show(new LogInModal()); app.modal.show(new LogInModal());
} }

View File

@ -111,10 +111,20 @@ export default {
/** /**
* Open the composer to edit a post. * Open the composer to edit a post.
*
* @return {Promise}
*/ */
editAction() { editAction() {
app.composer.load(new EditPostComposer({ post: this })); const deferred = m.deferred();
const component = new EditPostComposer({ post: this });
app.composer.load(component);
app.composer.show(); app.composer.show();
deferred.resolve(component);
return deferred.promise;
}, },
/** /**