diff --git a/apps/app/ui-tests-app/search-bar/issue-5039-view-model.ts b/apps/app/ui-tests-app/search-bar/issue-5039-view-model.ts new file mode 100644 index 000000000..484043991 --- /dev/null +++ b/apps/app/ui-tests-app/search-bar/issue-5039-view-model.ts @@ -0,0 +1,27 @@ +import { Observable } from 'tns-core-modules/data/observable' +import { ObservableArray } from 'tns-core-modules/data/observable-array' +import { SearchBar } from 'tns-core-modules/ui/search-bar'; + +export class Issue5039ViewModel extends Observable { + + private _items = ['apple', 'apple cider', 'apple pie', 'orange', 'orange juice', 'strawberry', 'blueberry'] + public items = new ObservableArray() + + constructor(private _searchBar: SearchBar) { + super() + this.items.push(this._items) + } + + onSubmit() { + this.filter(this._searchBar.text); + } + + clearSearch() { + this.filter(); + } + + filter(value: string = '') { + this.items.splice(0, this.items.length) // remove all items + this.items.push(this._items.filter(i => -1 !== i.indexOf(value))) + } +} \ No newline at end of file diff --git a/apps/app/ui-tests-app/search-bar/issue-5039.ts b/apps/app/ui-tests-app/search-bar/issue-5039.ts new file mode 100644 index 000000000..d58406d97 --- /dev/null +++ b/apps/app/ui-tests-app/search-bar/issue-5039.ts @@ -0,0 +1,9 @@ +import { Issue5039ViewModel } from './issue-5039-view-model' +import { SearchBar } from "tns-core-modules/ui/search-bar"; +import { Page } from "tns-core-modules/ui/page"; + +export function navigatingTo(args) { + const page = args.object; + const searchBar = page.getViewById("searchBar") + page.bindingContext = new Issue5039ViewModel(searchBar); +} \ No newline at end of file diff --git a/apps/app/ui-tests-app/search-bar/issue-5039.xml b/apps/app/ui-tests-app/search-bar/issue-5039.xml new file mode 100644 index 000000000..aaee382c9 --- /dev/null +++ b/apps/app/ui-tests-app/search-bar/issue-5039.xml @@ -0,0 +1,10 @@ + + + + + + + + + \ No newline at end of file diff --git a/apps/app/ui-tests-app/search-bar/main-page.ts b/apps/app/ui-tests-app/search-bar/main-page.ts index 0978a35df..cf77e4cf3 100644 --- a/apps/app/ui-tests-app/search-bar/main-page.ts +++ b/apps/app/ui-tests-app/search-bar/main-page.ts @@ -13,5 +13,6 @@ export function loadExamples() { const examples = new Map(); examples.set("issue-4147", "search-bar/issue-4147"); examples.set("search-bar", "search-bar/search-bar"); + examples.set("issue-5039","search-bar/issue-5039"); return examples; } diff --git a/tns-core-modules/ui/search-bar/search-bar.android.ts b/tns-core-modules/ui/search-bar/search-bar.android.ts index 834b9cb48..7b9f1df89 100644 --- a/tns-core-modules/ui/search-bar/search-bar.android.ts +++ b/tns-core-modules/ui/search-bar/search-bar.android.ts @@ -43,6 +43,7 @@ function initializeNativeClasses(): void { } this[SEARCHTEXT] = newText; + this[QUERY] = undefined; return true; }