diff --git a/saas_web.py b/saas_web.py index 63265e94..1fb7bc90 100644 --- a/saas_web.py +++ b/saas_web.py @@ -368,14 +368,29 @@ async def add_security_headers(request: Request, call_next): [dropZone, batchDropZone].forEach(zone => { if (!zone) return; + zone.dragCounter = 0; ['dragenter', 'dragover', 'dragleave', 'drop'].forEach(eventName => { zone.addEventListener(eventName, preventDefaults, false); }); - ['dragenter', 'dragover'].forEach(eventName => { - zone.addEventListener(eventName, () => zone.classList.add('dragover'), false); + ['dragenter'].forEach(eventName => { + zone.addEventListener(eventName, () => { + zone.dragCounter++; + zone.classList.add('dragover'); + }, false); }); - ['dragleave', 'drop'].forEach(eventName => { - zone.addEventListener(eventName, () => zone.classList.remove('dragover'), false); + ['dragleave'].forEach(eventName => { + zone.addEventListener(eventName, () => { + zone.dragCounter--; + if (zone.dragCounter === 0) { + zone.classList.remove('dragover'); + } + }, false); + }); + ['drop'].forEach(eventName => { + zone.addEventListener(eventName, () => { + zone.dragCounter = 0; + zone.classList.remove('dragover'); + }, false); }); }); ['dragenter', 'dragover', 'dragleave', 'drop'].forEach(eventName => {