mirror of
https://github.com/discourse/discourse.git
synced 2024-11-23 03:09:00 +08:00
DEV: supports actionClick for small actions (#15331)
This commit is contained in:
parent
cb976ac562
commit
022dba4727
|
@ -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();
|
||||
}
|
||||
},
|
||||
|
||||
|
|
|
@ -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() {
|
||||
|
|
Loading…
Reference in New Issue
Block a user