|
1479 | 1479 | // ============================================================================ |
1480 | 1480 | // EVENTS |
1481 | 1481 | // ============================================================================ |
| 1482 | + const initSidebarResizer = () => { |
| 1483 | + const handle = D.resizer; |
| 1484 | + const panel = D.side; |
| 1485 | + if (!handle || !panel) return; |
| 1486 | + |
| 1487 | + const minWidth = panel.getBoundingClientRect().width; |
| 1488 | + const safeMax = Math.max(minWidth, window.innerWidth - 320); |
| 1489 | + let startX = 0; |
| 1490 | + let startWidth = panel.offsetWidth; |
| 1491 | + |
| 1492 | + const onMove = e => { |
| 1493 | + const delta = e.clientX - startX; |
| 1494 | + let targetWidth = startWidth + delta; |
| 1495 | + if (targetWidth < minWidth) targetWidth = minWidth; |
| 1496 | + if (targetWidth > safeMax) targetWidth = safeMax; |
| 1497 | + panel.style.width = `${targetWidth}px`; |
| 1498 | + }; |
| 1499 | + |
| 1500 | + const stopDrag = () => { |
| 1501 | + document.removeEventListener('mousemove', onMove); |
| 1502 | + document.removeEventListener('mouseup', stopDrag); |
| 1503 | + document.body.style.cursor = ''; |
| 1504 | + handle.classList.remove('active'); |
| 1505 | + }; |
| 1506 | + |
| 1507 | + handle.addEventListener('mousedown', e => { |
| 1508 | + e.preventDefault(); |
| 1509 | + startX = e.clientX; |
| 1510 | + startWidth = panel.offsetWidth; |
| 1511 | + document.body.style.cursor = 'ew-resize'; |
| 1512 | + handle.classList.add('active'); |
| 1513 | + document.addEventListener('mousemove', onMove); |
| 1514 | + document.addEventListener('mouseup', stopDrag); |
| 1515 | + }); |
| 1516 | + }; |
| 1517 | + |
1482 | 1518 | const setup = () => { |
1483 | 1519 | console.log('Setting up event handlers...'); |
1484 | 1520 | if (D.tog) D.tog.addEventListener('click', () => D.side && D.side.classList.toggle('collapsed')); |
|
1569 | 1605 | if (D.gen) D.gen.addEventListener('click', gen); |
1570 | 1606 | if (D.copy) D.copy.addEventListener('click', copyClip); |
1571 | 1607 | if (D.txt) D.txt.addEventListener('click', () => dl('txt')); |
| 1608 | + initSidebarResizer(); |
1572 | 1609 | // Clear All button |
1573 | 1610 | const clearBtn = $('clearAll'); |
1574 | 1611 | if (clearBtn) { |
|
0 commit comments