FIxes for new dropdowns

pull/75/head
ilian.iliev 2024-10-06 16:55:40 +03:00
parent 46a56f8af5
commit d295aef332
2 changed files with 13 additions and 32 deletions

View File

@ -350,24 +350,19 @@ state.core = (function () {
}
function handleToggleButton(id, duplicateIds) {
let btn = gradioApp().querySelector(`button#${id}`);
if (! btn) { // New gradio version
btn = gradioApp().querySelector(`.input-accordion#${id} .label-wrap`);
}
if (! btn) {
state.logging.warn(`Button not found: ${id}`);
return;
}
if (store.get(id) === 'true') {
state.utils.clickToggleMenu(btn);
}
btn.addEventListener('click', function () {
let classList = Array.from(this.parentNode.classList);
if (btn.tagName === 'BUTTON') { // Old gradio version
store.set(id, classList.indexOf('secondary-down') === -1);
} else {
store.set(id, classList.indexOf('input-accordion-open') > -1);
let selector = duplicateIds ? `[id="${id}"]` : `#${id}`;
elements = gradioApp().querySelectorAll(`.input-accordion${selector}>.label-wrap`);
elements.forEach(function (element) {
if (store.get(id) === 'true') {
state.utils.clickToggleMenu(element);
}
element.addEventListener('click', function () {
let classList = Array.from(this.parentNode.classList);
store.set(id, classList.indexOf('input-accordion-open') > -1);
});
});
}

View File

@ -29,21 +29,7 @@ state.utils = {
state.logging.warn('Toggle button not found');
return;
}
let mouseEvent = new MouseEvent('click', {
view: window,
bubbles: true,
cancelable: true
});
element.dispatchEvent(mouseEvent);
let icon = element.parentNode.querySelector('.icon');
if (icon) {
icon.dispatchEvent(mouseEvent);
}
let checkbox = element.parentNode.querySelector('input[type="checkbox"]');
if (checkbox) {
checkbox.checked = !checkbox.checked;
checkbox.dispatchEvent(mouseEvent);
}
element.click();
return element;
},
setValue: function setValue(element, value, event) {