fix: Icon picker modal reopens after selection
- Use Bootstrap event dispatch instead of manual hide - Let Bootstrap manage modal state properly - Clean backdrop only in hidden.bs.modal event
This commit is contained in:
parent
6e54615d54
commit
cb74973a90
|
|
@ -417,25 +417,14 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Используем Bootstrap API для закрытия
|
// Триггерим событие hide через Bootstrap
|
||||||
var modalEl = document.getElementById('iconPickerModal');
|
var modalEl = document.getElementById('iconPickerModal');
|
||||||
if (modalEl && typeof bootstrap !== 'undefined' && bootstrap.Modal) {
|
if (modalEl) {
|
||||||
var modal = bootstrap.Modal.getInstance(modalEl);
|
var evt = new Event('hide.bs.modal');
|
||||||
if (modal) {
|
modalEl.dispatchEvent(evt);
|
||||||
modal.hide();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Принудительно удаляем backdrop через небольшую задержку
|
|
||||||
setTimeout(function() {
|
|
||||||
var backdrops = document.querySelectorAll('.modal-backdrop');
|
|
||||||
backdrops.forEach(function(bp) { bp.remove(); });
|
|
||||||
document.body.classList.remove('modal-open');
|
|
||||||
document.body.style.paddingRight = '';
|
|
||||||
document.body.style.overflow = '';
|
|
||||||
}, 100);
|
|
||||||
}
|
|
||||||
|
|
||||||
document.addEventListener('DOMContentLoaded', function() {
|
document.addEventListener('DOMContentLoaded', function() {
|
||||||
renderIcons();
|
renderIcons();
|
||||||
|
|
||||||
|
|
@ -474,8 +463,15 @@
|
||||||
|
|
||||||
// Удаляем backdrop при закрытии модала
|
// Удаляем backdrop при закрытии модала
|
||||||
document.getElementById('iconPickerModal').addEventListener('hidden.bs.modal', function(e) {
|
document.getElementById('iconPickerModal').addEventListener('hidden.bs.modal', function(e) {
|
||||||
var backdrop = document.querySelector('.modal-backdrop');
|
var backdrops = document.querySelectorAll('.modal-backdrop');
|
||||||
if (backdrop) backdrop.remove();
|
backdrops.forEach(function(bp) { bp.remove(); });
|
||||||
|
document.body.classList.remove('modal-open');
|
||||||
|
document.body.style.paddingRight = '';
|
||||||
|
});
|
||||||
|
|
||||||
|
// Обработка hide - Bootstrap управляет закрытием
|
||||||
|
document.getElementById('iconPickerModal').addEventListener('hide.bs.modal', function(e) {
|
||||||
|
// Bootstrap сам управляет модалом, ничего не делаем
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
})();
|
})();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue