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 0984979403
commit fe868af224
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',
className: 'Button Button--primary IndexPage-newDiscussion',
itemClassName: 'App-primaryControl',
onclick: this.newDiscussion.bind(this),
onclick: this.newDiscussionAction.bind(this),
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}
*/
newDiscussion() {
newDiscussionAction() {
const deferred = m.deferred();
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 {
app.modal.show(
new LogInModal({
onlogin: this.composeNewDiscussion.bind(this, deferred)
})
);
deferred.reject();
app.modal.show(new LogInModal());
}
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.
*

View File

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

View File

@ -111,10 +111,20 @@ export default {
/**
* Open the composer to edit a post.
*
* @return {Promise}
*/
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();
deferred.resolve(component);
return deferred.promise;
},
/**