mirror of
https://github.com/tenrok/vue-select.git
synced 2026-06-22 10:30:34 +03:00
feat(clearsearchonblur): add clearSearchOnBlur prop (#1077)
Add docs, update tests from #1060.
This commit is contained in:
@@ -120,6 +120,19 @@ clearSearchOnSelect: {
|
|||||||
},
|
},
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## clearSearchOnBlur
|
||||||
|
|
||||||
|
Enables/disables clearing the search text when the search input is blurred.
|
||||||
|
|
||||||
|
```js
|
||||||
|
clearSearchOnBlur: {
|
||||||
|
type: Function,
|
||||||
|
default: function ({ clearSearchOnSelect, multiple }) {
|
||||||
|
return clearSearchOnSelect && !multiple
|
||||||
|
}
|
||||||
|
},
|
||||||
|
```
|
||||||
|
|
||||||
## closeOnSelect
|
## closeOnSelect
|
||||||
|
|
||||||
Close a dropdown when an option is chosen. Set to false to keep the dropdown
|
Close a dropdown when an option is chosen. Set to false to keep the dropdown
|
||||||
|
|||||||
@@ -112,28 +112,28 @@ describe("Reset on options change", () => {
|
|||||||
expect(Select.vm.selectedValue).toEqual([{ label: "oneLabel", value: "one" }]);
|
expect(Select.vm.selectedValue).toEqual([{ label: "oneLabel", value: "one" }]);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('default behavior when blur search field is to clean it.', () => {
|
it('clearSearchOnBlur returns false when multiple is true', () => {
|
||||||
const Select = mountDefault({});
|
const Select = mountDefault({});
|
||||||
let clearSearchOnBlur = jest.spyOn(Select.vm, 'clearSearchOnBlur');
|
let clearSearchOnBlur = jest.spyOn(Select.vm, 'clearSearchOnBlur');
|
||||||
Select.find({ ref: "search" }).trigger("click");
|
Select.find({ref: 'search'}).trigger('click');
|
||||||
Select.setData({ search: "one" });
|
Select.setData({search: 'one'});
|
||||||
Select.find({ ref: "search" }).trigger("blur");
|
Select.find({ref: 'search'}).trigger('blur');
|
||||||
|
|
||||||
expect(clearSearchOnBlur).toHaveBeenCalledTimes(1);
|
expect(clearSearchOnBlur).toHaveBeenCalledTimes(1);
|
||||||
expect(clearSearchOnBlur).toHaveBeenCalledWith({
|
expect(clearSearchOnBlur).toHaveBeenCalledWith({
|
||||||
clearSearchOnSelect: true,
|
clearSearchOnSelect: true,
|
||||||
multiple: false
|
multiple: false,
|
||||||
});
|
});
|
||||||
expect(Select.vm.search).toBe('');
|
expect(Select.vm.search).toBe('');
|
||||||
});
|
});
|
||||||
|
|
||||||
it('control behavior when blur search field.', () => {
|
it('clearSearchOnBlur accepts a function', () => {
|
||||||
let clearSearchOnBlur = jest.fn(() => false);
|
let clearSearchOnBlur = jest.fn(() => false);
|
||||||
const Select = mountDefault({clearSearchOnBlur});
|
const Select = mountDefault({clearSearchOnBlur});
|
||||||
|
|
||||||
Select.find({ ref: "search" }).trigger("click");
|
Select.find({ref: 'search'}).trigger('click');
|
||||||
Select.setData({ search: "one" });
|
Select.setData({search: 'one'});
|
||||||
Select.find({ ref: "search" }).trigger("blur");
|
Select.find({ref: 'search'}).trigger('blur');
|
||||||
|
|
||||||
expect(clearSearchOnBlur).toHaveBeenCalledTimes(1);
|
expect(clearSearchOnBlur).toHaveBeenCalledTimes(1);
|
||||||
expect(Select.vm.search).toBe('one');
|
expect(Select.vm.search).toBe('one');
|
||||||
|
|||||||
Reference in New Issue
Block a user