Skip to content

Commit c893f0e

Browse files
authored
feat(search): Perform search on focus when minCharacters is zero (#590)
* feat(search): Perform search on focus when minCharacters is zero * chore: PR changes
1 parent acd6be0 commit c893f0e

File tree

5 files changed

+24
-2
lines changed

5 files changed

+24
-2
lines changed

addon/components/nrg-search.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ export default class NrgSearchComponent extends NrgValidationComponent {
6464
}
6565

6666
get canPerformSearch() {
67-
return this.searchString?.length >= this.minCharacters;
67+
return (this.searchString?.length ?? 0) >= this.minCharacters;
6868
}
6969

7070
get receivedResults() {

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "ember-nrg-ui",
3-
"version": "4.8.2",
3+
"version": "4.8.3",
44
"description": "Opinionated UI addon based on how KUB scaffolds web applications",
55
"keywords": [
66
"ember-addon",

tests/dummy/app/components/freestyle/search.hbs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
@query={{this.query}}
1818
@model={{this}}
1919
@valuePath="selectedResult"
20+
@minCharacters={{this.minCharacters}}
2021
/>
2122
</:example>
2223

@@ -45,6 +46,11 @@
4546
@value={{this.clearable}}
4647
@onInput={{fn (mut this.clearable)}}
4748
/>
49+
<Args.String
50+
@name="minCharacters"
51+
@value={{this.minCharacters}}
52+
@onInput={{fn (mut this.minCharacters)}}
53+
/>
4854

4955
</:api>
5056
</Freestyle::Usage>

tests/dummy/app/components/freestyle/search.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,9 @@ export default class FreestyleNrgSearchComponent extends Component {
3434
@tracked
3535
selectedResult = null;
3636

37+
@tracked
38+
minCharacters = 1;
39+
3740
@action
3841
async query(queryString) {
3942
this.queryString = queryString;

tests/integration/components/nrg-search-test.js

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,19 @@ module('Integration | Component | nrg-search', function (hooks) {
3939
assert.ok(findAll('.results').length);
4040
});
4141

42+
test('results display on focus when minCharacters is zero', async function (assert) {
43+
this.query = () => {
44+
return [
45+
{
46+
header: 'header',
47+
},
48+
];
49+
};
50+
await render(hbs`<NrgSearch @query={{this.query}} @minCharacters="0"/>`);
51+
await click('input');
52+
assert.ok(findAll('.results').length);
53+
});
54+
4255
test('results do not display when loading', async function (assert) {
4356
this.query = () => {
4457
return [{}];

0 commit comments

Comments
 (0)