mirror of
https://github.com/discourse/discourse.git
synced 2025-05-24 03:36:18 +08:00
FIX: ensures onSelect/onDeselect are called
This commit is contained in:
@ -210,6 +210,10 @@ export default SelectKitComponent.extend({
|
|||||||
},
|
},
|
||||||
|
|
||||||
select(computedContentItem) {
|
select(computedContentItem) {
|
||||||
|
if (this.get("hasSelection")) {
|
||||||
|
this.deselect(this.get("selection.value"));
|
||||||
|
}
|
||||||
|
|
||||||
if (
|
if (
|
||||||
!computedContentItem ||
|
!computedContentItem ||
|
||||||
computedContentItem.__sk_row_type === "noneRow"
|
computedContentItem.__sk_row_type === "noneRow"
|
||||||
|
@ -835,3 +835,55 @@ componentTest("without forceEscape", {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
componentTest("onSelect", {
|
||||||
|
template:
|
||||||
|
"<div class='test-external-action'></div>{{single-select content=content onSelect=(action externalAction)}}",
|
||||||
|
|
||||||
|
beforeEach() {
|
||||||
|
this.set("externalAction", actual => {
|
||||||
|
find(".test-external-action").text(actual);
|
||||||
|
});
|
||||||
|
|
||||||
|
this.set("content", ["red", "blue"]);
|
||||||
|
},
|
||||||
|
|
||||||
|
async test(assert) {
|
||||||
|
await this.get("subject").expand();
|
||||||
|
await this.get("subject").selectRowByValue("red");
|
||||||
|
|
||||||
|
assert.equal(
|
||||||
|
find(".test-external-action")
|
||||||
|
.text()
|
||||||
|
.trim(),
|
||||||
|
"red"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
componentTest("onDeselect", {
|
||||||
|
template:
|
||||||
|
"<div class='test-external-action'></div>{{single-select content=content onDeselect=(action externalAction)}}",
|
||||||
|
|
||||||
|
beforeEach() {
|
||||||
|
this.set("externalAction", actual => {
|
||||||
|
find(".test-external-action").text(actual);
|
||||||
|
});
|
||||||
|
|
||||||
|
this.set("content", ["red", "blue"]);
|
||||||
|
},
|
||||||
|
|
||||||
|
async test(assert) {
|
||||||
|
await this.get("subject").expand();
|
||||||
|
await this.get("subject").selectRowByValue("red");
|
||||||
|
await this.get("subject").expand();
|
||||||
|
await this.get("subject").selectRowByValue("blue");
|
||||||
|
|
||||||
|
assert.equal(
|
||||||
|
find(".test-external-action")
|
||||||
|
.text()
|
||||||
|
.trim(),
|
||||||
|
"red"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Reference in New Issue
Block a user