focus-deck.jsx
1 const focusDeck = () => { 2 let timer = setTimeout(() => { 3 const columns = document.getElementById('columns'); 4 if (columns) { 5 // Focus first column 6 // columns.querySelector('.deck-container')?.focus?.(); 7 } else { 8 const modals = document.querySelectorAll('#modal-container > *'); 9 if (modals?.length) { 10 // Focus last modal 11 const modal = modals[modals.length - 1]; // last one 12 const modalFocusElement = 13 modal.querySelector('[tabindex="-1"]') || modal; 14 if (modalFocusElement) { 15 modalFocusElement.focus(); 16 return; 17 } 18 } 19 const backDrop = document.querySelector('.deck-backdrop'); 20 if (backDrop) return; 21 // Focus last deck 22 const pages = document.querySelectorAll('.deck-container'); 23 const page = pages[pages.length - 1]; // last one 24 if (page && page.tabIndex === -1) { 25 console.log('FOCUS', page); 26 page.focus(); 27 } 28 } 29 }, 100); 30 return () => clearTimeout(timer); 31 }; 32 33 export default focusDeck;