/ src / utils / focus-deck.jsx
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;