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) { function handleToggleButton(id, duplicateIds) {
let btn = gradioApp().querySelector(`button#${id}`);
if (! btn) { // New gradio version let selector = duplicateIds ? `[id="${id}"]` : `#${id}`;
btn = gradioApp().querySelector(`.input-accordion#${id} .label-wrap`);
} elements = gradioApp().querySelectorAll(`.input-accordion${selector}>.label-wrap`);
if (! btn) {
state.logging.warn(`Button not found: ${id}`); elements.forEach(function (element) {
return;
}
if (store.get(id) === 'true') { if (store.get(id) === 'true') {
state.utils.clickToggleMenu(btn); state.utils.clickToggleMenu(element);
} }
btn.addEventListener('click', function () { element.addEventListener('click', function () {
let classList = Array.from(this.parentNode.classList); 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); store.set(id, classList.indexOf('input-accordion-open') > -1);
} });
}); });
} }

View File

@ -29,21 +29,7 @@ state.utils = {
state.logging.warn('Toggle button not found'); state.logging.warn('Toggle button not found');
return; return;
} }
let mouseEvent = new MouseEvent('click', { element.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);
}
return element; return element;
}, },
setValue: function setValue(element, value, event) { setValue: function setValue(element, value, event) {