Merge pull request #992 from Choices-js/searchfloor0

Trigger search when clearing the input field with search floor of 0
This commit is contained in:
Matt Triff 2021-12-31 22:06:22 -05:00 committed by GitHub
commit 7758226d64
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 21 additions and 2 deletions

View File

@ -1763,6 +1763,21 @@ describe('choices', () => {
instance._onKeyUp({ target: null, keyCode: null });
});
it('is fired with a searchFloor of 0', (done) => {
instance.config.searchFloor = 0;
instance.input.value = '';
instance.input.focus();
instance.passedElement.element.addEventListener('search', (event) => {
expect(event.detail).to.eql({
value: instance.input.value,
resultCount: 0,
});
done();
});
instance._onKeyUp({ target: null, keyCode: null });
});
});
});

View File

@ -1230,7 +1230,7 @@ class Choices implements Choices {
}
_handleSearch(value: string): void {
if (!value || !this.input.isFocussed) {
if (!this.input.isFocussed) {
return;
}
@ -1239,7 +1239,11 @@ class Choices implements Choices {
const hasUnactiveChoices = choices.some((option) => !option.active);
// Check that we have a value to search and the input was an alphanumeric character
if (value && value.length >= searchFloor) {
if (
value !== null &&
typeof value !== 'undefined' &&
value.length >= searchFloor
) {
const resultCount = searchChoices ? this._searchChoices(value) : 0;
// Trigger search event
this.passedElement.triggerEvent(EVENTS.search, {