Skip to content

Commit cb8923c

Browse files
authored
feat: add new event onFilterClear missing (#260)
- we already have `onClear` event on the select button, but we should also add `onFilterClear` to be associated to the input filter
1 parent 6f854a1 commit cb8923c

File tree

6 files changed

+31
-0
lines changed

6 files changed

+31
-0
lines changed

packages/demo/src/events/events.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ export default class Example {
88
this.logElm = document.querySelector('textarea') as HTMLTextAreaElement;
99
this.ms1 = multipleSelect('select', {
1010
filter: true,
11+
showSearchClear: true,
1112
onOpen: () => {
1213
this.log('onOpen event fire!\n');
1314
},
@@ -35,6 +36,9 @@ export default class Example {
3536
onFilter: text => {
3637
this.log(`onFilter event fire! text: ${text}\n`);
3738
},
39+
onFilterClear: () => {
40+
this.log('onFilterClear event fire!\n');
41+
},
3842
onAfterCreate: () => {
3943
this.log('onAfterCreate event fire!\n');
4044
},

packages/demo/src/options/options34.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ export default class Example {
77
this.ms = multipleSelect('select', {
88
filter: true,
99
showSearchClear: true,
10+
// onFilterClear: () => console.log('search filter cleared'),
1011
}) as MultipleSelectInstance[];
1112
}
1213

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -853,6 +853,7 @@ export class MultipleSelectInstance {
853853
this._currentHighlightIndex = -1;
854854
this.moveHighlightDown();
855855
this.filter();
856+
this.options.onFilterClear();
856857
}) as EventListener);
857858
}
858859

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ const DEFAULTS: Partial<MultipleSelectOption> = {
7373
onBeforeClick: () => true,
7474
onClick: () => false,
7575
onFilter: () => false,
76+
onFilterClear: () => false,
7677
onClear: () => false,
7778
onAfterCreate: () => false,
7879
onDestroy: () => false,

packages/multiple-select-vanilla/src/interfaces/multipleSelectOption.interface.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -265,6 +265,9 @@ export interface MultipleSelectOption extends MultipleSelectLocale {
265265
/** Fires when a checkbox filter is changed. */
266266
onFilter: (text?: string) => void;
267267

268+
/** Fires when the search filter is cleared. */
269+
onFilterClear: () => void;
270+
268271
/** Custom parser to remove diacritic signs (accents) from characters when filtering select list. */
269272
diacriticParser: (text: string) => string;
270273

playwright/e2e/events.spec.ts

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,5 +71,26 @@ test.describe('Events Demo', () => {
7171
'onFilter event fire! text: 1',
7272
].join('\n'),
7373
);
74+
75+
await page.locator('.ms-search .ms-icon-close').click();
76+
await expect(textareaLoc).toHaveText(
77+
[
78+
'onAfterCreate event fire!',
79+
'onFocus event fire!',
80+
'onBlur event fire!',
81+
'onOpen event fire!',
82+
'onFocus event fire!',
83+
'onClose event fire!',
84+
'onBlur event fire!',
85+
'onOpen event fire!',
86+
'onOptgroupClick event fire! view: {"label":"Group 1","selected":true,"children":[null,{"text":"Option 1","value":"1","selected":true,"disabled":false},null,{"text":"Option 2","value":"2","selected":true,"disabled":false},null,{"text":"Option 3","value":"3","selected":true,"disabled":false},null]}',
87+
'onCheckAll event fire!',
88+
'onCheckAll event fire!',
89+
'onFilter event fire! text: 1',
90+
'onCheckAll event fire!',
91+
'onFilter event fire! text: ',
92+
'onFilterClear event fire!',
93+
].join('\n'),
94+
);
7495
});
7596
});

0 commit comments

Comments
 (0)