Commit b6c069ca9d58408fd5ec2979f9f9878fdd4fea05

Authored by Sergio Crisostomo
1 parent 45bcc14d

reset query if options are removed

Showing 1 changed file with 12 additions and 7 deletions   Show diff stats
src/components/select/select.vue
... ... @@ -282,10 +282,11 @@
282 282 const selectedValues = this.values.map(({value}) => value);
283 283 for (let option of (this.slotOptions || [])) {
284 284  
285   - if (!option.componentOptions) continue;
  285 + const cOptions = option.componentOptions;
  286 + if (!cOptions) continue;
286 287  
287   - if (option.componentOptions.tag.match(optionGroupRegexp)){
288   - let children = option.componentOptions.children;
  288 + if (cOptions.tag.match(optionGroupRegexp)){
  289 + let children = cOptions.children;
289 290  
290 291 // remove filtered children
291 292 if (this.filterable){
... ... @@ -294,16 +295,16 @@
294 295 );
295 296 }
296 297  
297   - option.componentOptions.children = children.map(opt => {
  298 + cOptions.children = children.map(opt => {
298 299 optionCounter = optionCounter + 1;
299 300 return this.processOption(opt, selectedValues, optionCounter === currentIndex);
300 301 });
301 302  
302 303 // keep the group if it still has children
303   - if (option.componentOptions.children.length > 0) selectOptions.push({...option});
  304 + if (cOptions.children.length > 0) selectOptions.push({...option});
304 305 } else {
305 306 // ignore option if not passing filter
306   - const optionPassesFilter = this.filterable ? this.validateOption(option.componentOptions) : option;
  307 + const optionPassesFilter = this.filterable ? this.validateOption(cOptions) : option;
307 308 if (!optionPassesFilter) continue;
308 309  
309 310 optionCounter = optionCounter + 1;
... ... @@ -614,11 +615,15 @@
614 615 dropVisible(open){
615 616 this.broadcast('Drop', open ? 'on-update-popper' : 'on-destroy-popper');
616 617 },
617   - selectOptions(){
  618 + selectOptions(options){
618 619 if (this.hasExpectedValue){
619 620 this.values = this.values.map(this.getOptionData);
620 621 this.hasExpectedValue = false;
621 622 }
  623 +
  624 + if (options.length === 0){
  625 + this.query = '';
  626 + }
622 627 }
623 628 }
624 629 };
... ...