DEV: supports actionClick for small actions (#15331)

This commit is contained in:
Joffrey JAFFEUX 2021-12-17 09:55:54 +01:00 committed by GitHub
parent cb976ac562
commit 022dba4727
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 35 additions and 1 deletions

View File

@ -79,8 +79,23 @@ export default createWidget("post-small-action", {
},
buildClasses(attrs) {
const classes = [];
if (attrs.actionClick) {
classes.push("clickable");
}
if (attrs.deleted) {
return "deleted";
classes.push("deleted");
}
return classes;
},
click(event) {
if (this.attrs.actionClick) {
event.preventDefault();
this.attrs.actionClick();
}
},

View File

@ -3,6 +3,7 @@ import componentTest, {
} from "discourse/tests/helpers/component-test";
import { discourseModule, exists } from "discourse/tests/helpers/qunit-helpers";
import hbs from "htmlbars-inline-precompile";
import { click } from "@ember/test-helpers";
discourseModule(
"Integration | Component | Widget | post-small-action",
@ -34,6 +35,24 @@ discourseModule(
},
});
componentTest("is clickable if actionClick", {
template: hbs`{{mount-widget widget="post-small-action" args=args}}`,
beforeEach() {
this.set("args", {
id: 123,
actionClick: () => {
document.querySelector(".small-action").style.background = "red";
},
});
},
async test(assert) {
const clickable = document.querySelector(".small-action.clickable");
await click(clickable);
assert.equal(clickable.style.background, "red", "it calls the action");
},
});
componentTest("does not show edit button if canRecover even if canEdit", {
template: hbs`{{mount-widget widget="post-small-action" args=args}}`,
beforeEach() {