Fix bug where dropdowns would not dismiss properly

This commit is contained in:
Clement Ho 2016-12-09 13:15:09 -06:00
parent c18285cec0
commit f0608878ce
5 changed files with 15 additions and 8 deletions

View File

@ -29,7 +29,7 @@
gl.FilteredSearchManager.addWordToInput(this.getSelectedText(username)); gl.FilteredSearchManager.addWordToInput(this.getSelectedText(username));
} }
this.dismissDropdown(); this.dismissDropdown(!dataValueSet);
} }
renderContent() { renderContent() {

View File

@ -34,16 +34,19 @@
itemClicked(e) { itemClicked(e) {
const selected = e.detail.selected; const selected = e.detail.selected;
if (!selected.hasAttribute('data-value')) {
if (selected.hasAttribute('data-value')) {
this.dismissDropdown();
} else {
const token = selected.querySelector('.js-filter-hint').innerText.trim(); const token = selected.querySelector('.js-filter-hint').innerText.trim();
const tag = selected.querySelector('.js-filter-tag').innerText.trim(); const tag = selected.querySelector('.js-filter-tag').innerText.trim();
if (tag.length) { if (tag.length) {
gl.FilteredSearchManager.addWordToInput(this.getSelectedText(token)); gl.FilteredSearchManager.addWordToInput(this.getSelectedText(token));
} }
this.dismissDropdown();
this.dispatchInputEvent();
} }
this.dismissDropdown();
} }
renderContent() { renderContent() {

View File

@ -26,7 +26,8 @@
gl.FilteredSearchManager.addWordToInput(labelName); gl.FilteredSearchManager.addWordToInput(labelName);
} }
this.dismissDropdown(); // debugger
this.dismissDropdown(!dataValueSet);
} }
renderContent() { renderContent() {

View File

@ -26,7 +26,7 @@
gl.FilteredSearchManager.addWordToInput(this.getSelectedText(milestoneName)); gl.FilteredSearchManager.addWordToInput(this.getSelectedText(milestoneName));
} }
this.dismissDropdown(); this.dismissDropdown(!dataValueSet);
} }
renderContent() { renderContent() {

View File

@ -77,11 +77,15 @@
} }
dismissDropdown() { dismissDropdown() {
this.getCurrentHook().list.hide();
this.input.focus(); this.input.focus();
}
dispatchInputEvent() {
// Propogate input change to FilteredSearchManager // Propogate input change to FilteredSearchManager
// so that it can determine which dropdowns to open // so that it can determine which dropdowns to open
this.input.dispatchEvent(new Event('input')); this.input.dispatchEvent(new Event('input'));
} }
render(forceRenderContent) { render(forceRenderContent) {
this.setAsDropdown(); this.setAsDropdown();
@ -91,7 +95,6 @@
if (firstTimeInitialized || forceRenderContent) { if (firstTimeInitialized || forceRenderContent) {
this.renderContent(); this.renderContent();
} else if(this.getCurrentHook().list.list.id !== this.listId) { } else if(this.getCurrentHook().list.list.id !== this.listId) {
// this.droplab.changeHookList(this.hookId, `#${this.listId}`);
this.renderContent(); this.renderContent();
} }
} }