Skip to content

Commit ed23ca9

Browse files
committed
fix: should call onBlur anytime Tab key is pressed
1 parent a07efdc commit ed23ca9

2 files changed

Lines changed: 38 additions & 0 deletions

File tree

packages/multiple-select-vanilla/src/MultipleSelectInstance.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -278,6 +278,13 @@ export class MultipleSelectInstance {
278278
'body-click',
279279
);
280280
}
281+
282+
// listen to Tab and call `onBlur` when that happens
283+
this._bindEventService.bind(this.dropElm, 'keyup', ((e: KeyboardEvent) => {
284+
if (e.code === 'Tab') {
285+
this.options.onBlur();
286+
}
287+
}) as EventListener);
281288
}
282289

283290
protected initData() {

playwright/e2e/events.spec.ts

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,5 +113,36 @@ test.describe('Events Demo', () => {
113113
'onFilterClear event fire!',
114114
].join('\n'),
115115
);
116+
117+
await page.locator('.ms-parent').click();
118+
await page.keyboard.press('Tab');
119+
await expect(textareaLoc).toHaveText(
120+
[
121+
'onAfterCreate event fire!',
122+
'onFocus event fire!',
123+
'onBeforeOpen event fire!',
124+
'onBlur event fire!',
125+
'onOpen event fire!',
126+
'onFocus event fire!',
127+
'onClose event fire! Reason: "toggle.close"',
128+
'onBeforeOpen event fire!',
129+
'onBlur event fire!',
130+
'onOpen event fire!',
131+
'onOptgroupClick event fire! view: {"label":"Group 1","selected":true,"children":[{"label":"Option 1","value":"1","selected":true,"disabled":false},{"label":"Option 2","value":"2","selected":true,"disabled":false},{"label":"Option 3","value":"3","selected":true,"disabled":false}]}',
132+
'onChange event fire! data: {"eventName":"onOptgroupClick","item":{"label":"Group 1","selected":true,"type":"optgroup"},"selection":{"labels":["[Group 1: Option 1, Option 2, Option 3]"],"values":["1","2","3"]}}',
133+
'onCheckAll event fire!',
134+
'onChange event fire! data: {"eventName":"onCheckAll","selection":{"labels":["[Group 1: Option 1, Option 2, Option 3]","[Group 2: Option 4, Option 5, Option 6]","[Group 3: Option 7, Option 8, Option 9]"],"values":["1","2","3","4","5","6","7","8","9"]}}',
135+
'onCheckAll event fire!',
136+
'onChange event fire! data: {"eventName":"onCheckAll","selection":{"labels":["[Group 1: Option 1, Option 2, Option 3]","[Group 2: Option 4, Option 5, Option 6]","[Group 3: Option 7, Option 8, Option 9]"],"values":["1","2","3","4","5","6","7","8","9"]}}',
137+
'onFilter event fire! text: 1',
138+
'onCheckAll event fire!',
139+
'onChange event fire! data: {"eventName":"onCheckAll","selection":{"labels":["[Group 1: Option 1, Option 2, Option 3]","[Group 2: Option 4, Option 5, Option 6]","[Group 3: Option 7, Option 8, Option 9]"],"values":["1","2","3","4","5","6","7","8","9"]}}',
140+
'onFilter event fire! text: ',
141+
'onFilterClear event fire!',
142+
'onFocus event fire!',
143+
'onClose event fire! Reason: "toggle.close"',
144+
'onBlur event fire!',
145+
].join('\n'),
146+
);
116147
});
117148
});

0 commit comments

Comments
 (0)