Skip to content

Commit

Permalink
feat(search): Perform search on focus when minCharacters is zero (#590)
Browse files Browse the repository at this point in the history
* feat(search): Perform search on focus when minCharacters is zero

* chore: PR changes
  • Loading branch information
nadeemhemani authored Aug 26, 2024
1 parent acd6be0 commit c893f0e
Show file tree
Hide file tree
Showing 5 changed files with 24 additions and 2 deletions.
2 changes: 1 addition & 1 deletion addon/components/nrg-search.js
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ export default class NrgSearchComponent extends NrgValidationComponent {
}

get canPerformSearch() {
return this.searchString?.length >= this.minCharacters;
return (this.searchString?.length ?? 0) >= this.minCharacters;
}

get receivedResults() {
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "ember-nrg-ui",
"version": "4.8.2",
"version": "4.8.3",
"description": "Opinionated UI addon based on how KUB scaffolds web applications",
"keywords": [
"ember-addon",
Expand Down
6 changes: 6 additions & 0 deletions tests/dummy/app/components/freestyle/search.hbs
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
@query={{this.query}}
@model={{this}}
@valuePath="selectedResult"
@minCharacters={{this.minCharacters}}
/>
</:example>

Expand Down Expand Up @@ -45,6 +46,11 @@
@value={{this.clearable}}
@onInput={{fn (mut this.clearable)}}
/>
<Args.String
@name="minCharacters"
@value={{this.minCharacters}}
@onInput={{fn (mut this.minCharacters)}}
/>

</:api>
</Freestyle::Usage>
Expand Down
3 changes: 3 additions & 0 deletions tests/dummy/app/components/freestyle/search.js
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,9 @@ export default class FreestyleNrgSearchComponent extends Component {
@tracked
selectedResult = null;

@tracked
minCharacters = 1;

@action
async query(queryString) {
this.queryString = queryString;
Expand Down
13 changes: 13 additions & 0 deletions tests/integration/components/nrg-search-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,19 @@ module('Integration | Component | nrg-search', function (hooks) {
assert.ok(findAll('.results').length);
});

test('results display on focus when minCharacters is zero', async function (assert) {
this.query = () => {
return [
{
header: 'header',
},
];
};
await render(hbs`<NrgSearch @query={{this.query}} @minCharacters="0"/>`);
await click('input');
assert.ok(findAll('.results').length);
});

test('results do not display when loading', async function (assert) {
this.query = () => {
return [{}];
Expand Down

0 comments on commit c893f0e

Please sign in to comment.