document.addEventListener('DOMContentLoaded', function() {
// Seleciona o drawer
const cartDrawer = document.querySelector('cart-drawer, #Cart-Drawer, .cart-drawer');
if (cartDrawer) {
// Observa quando o drawer abre/fecha
const observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
if (mutation.attributeName === 'open' || mutation.attributeName === 'class') {
const isOpen = cartDrawer.hasAttribute('open') ||
cartDrawer.classList.contains('active') ||
cartDrawer.classList.contains('open');
if (isOpen) {
document.body.classList.add('side-panel-open');
} else {
document.body.classList.remove('side-panel-open');
}
}
});
});
observer.observe(cartDrawer, {
attributes: true,
attributeFilter: ['open', 'class']
});
}
// Bloqueia scroll na página de trás quando drawer está aberto
document.addEventListener('wheel', function(e) {
if (document.body.classList.contains('side-panel-open')) {
const target = e.target;
const drawer = target.closest('cart-drawer, .cart-drawer, #Cart-Drawer');
if (!drawer) {
e.preventDefault();
e.stopPropagation();
}
}
}, { passive: false });
document.addEventListener('touchmove', function(e) {
if (document.body.classList.contains('side-panel-open')) {
const target = e.target;
const drawer = target.closest('cart-drawer, .cart-drawer, #Cart-Drawer');
if (!drawer) {
e.preventDefault();
e.stopPropagation();
}
}
}, { passive: false });
});