Skip to content

Commit 025ce05

Browse files
authored
fix(star-select): trigger change event on focus (#394)
1 parent e781f11 commit 025ce05

File tree

4 files changed

+27
-2
lines changed

4 files changed

+27
-2
lines changed

.changeset/free-boats-arrive.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@ebay/ebayui-core": patch
3+
---
4+
5+
fix(star-select): trigger change event on focus

packages/ebayui-core/src/components/ebay-star-rating-select/component.ts

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,14 +34,24 @@ class StarRating extends Marko.Component<Input, State> {
3434
}
3535
this.state.value = value;
3636
}
37+
handleClick(
38+
value: number,
39+
originalEvent: PointerEvent,
40+
el: HTMLInputElement,
41+
) {
42+
if (!el.disabled) {
43+
this.state.value = value;
44+
}
45+
this.emitEvent("change", value, originalEvent, el);
46+
}
47+
3748
emitEvent<T extends Event>(
3849
name: string,
3950
value: number,
4051
originalEvent: T,
4152
el: HTMLInputElement,
4253
) {
4354
if (!el.disabled) {
44-
this.state.value = value;
4555
this.emit(name, {
4656
originalEvent,
4757
value: value,

packages/ebayui-core/src/components/ebay-star-rating-select/index.marko

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ $ const {
2727
value=i
2828
disabled=disabled
2929
checked=state.value === i
30-
onClick("emitEvent", "change", i)
30+
onClick("handleClick", i)
3131
onFocus("emitEvent", "focus", i)
3232
onKeydown("emitEvent", "keydown", i)
3333
>

packages/ebayui-core/src/components/ebay-star-rating-select/test/test.browser.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,16 @@ describe("when native focus event is fired on star", () => {
7373
expect(eventArg).has.property("originalEvent").is.an.instanceOf(Event);
7474
expect(eventArg.value).to.equal(2);
7575
});
76+
77+
it("then it does not select the star", () => {
78+
const starInput = component.getByLabelText("2 stars");
79+
expect(starInput.checked).to.equal(false);
80+
});
81+
82+
it("then it does not emit change event", () => {
83+
const changeEvents = component.emitted("change");
84+
expect(changeEvents).has.length(0);
85+
});
7686
});
7787

7888
describe("when native keyboard event is fired on star", () => {

0 commit comments

Comments
 (0)