FEATURE: CTRL-SHIFT-ENTER and SHIFT-Click do not scroll on post (#10965)

This allows for an advanced feature where hitting control on click or
CTRL-SHIFT-ENTER will lead to a post being made but the browser not to
scroll to the end.
This commit is contained in:
Sam 2020-10-21 08:55:58 +11:00 committed by GitHub
parent fa4ca4cbd0
commit 7b3b05f229
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 19 additions and 8 deletions

View File

@ -17,6 +17,7 @@ export default Component.extend({
translatedLabel: null,
ariaLabel: null,
translatedAriaLabel: null,
forwardEvent: false,
isLoading: computed({
set(key, value) {
@ -89,7 +90,7 @@ export default Component.extend({
return computedLabel;
},
click() {
click(event) {
let { action } = this;
if (action) {
@ -98,9 +99,17 @@ export default Component.extend({
// There is already a warning in the console.
this.sendAction("action", this.actionParam);
} else if (typeof action === "object" && action.value) {
action.value(this.actionParam);
if (this.forwardEvent) {
action.value(this.actionParam, event);
} else {
action.value(this.actionParam);
}
} else if (typeof this.action === "function") {
action(this.actionParam);
if (this.forwardEvent) {
action(this.actionParam, event);
} else {
action(this.actionParam);
}
}
}

View File

@ -547,8 +547,8 @@ export default Controller.extend({
this.cancelComposer(differentDraftContext);
},
save() {
this.save();
save(ignore, event) {
this.save(false, { jump: !(event && event.shiftKey) });
},
displayEditReason() {
@ -626,7 +626,7 @@ export default Controller.extend({
disableSubmit: or("model.loading", "isUploading"),
save(force) {
save(force, options = {}) {
if (this.disableSubmit) {
return;
}
@ -775,7 +775,8 @@ export default Controller.extend({
this.currentUser.set("any_posts", true);
const post = result.target;
if (post && !staged) {
if (post && !staged && options.jump !== false) {
DiscourseURL.routeTo(post.url, { skipIfOnScreen: true });
}
})

View File

@ -14,7 +14,7 @@ export default {
//
// iPad physical keyboard does not offer Command or Control detection
// so use ALT-ENTER
this.save();
this.save(undefined, e);
return false;
}
},

View File

@ -135,6 +135,7 @@
{{composer-save-button action=(action "save")
icon=saveIcon
label=saveLabel
forwardEvent=true
disableSubmit=disableSubmit}}
{{#if site.mobileView}}