Skip to content

Commit

Permalink
Attempt to fix column focus bug
Browse files Browse the repository at this point in the history
  • Loading branch information
cheeaun committed Nov 14, 2024
1 parent c9295ba commit 6a4e142
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 2 deletions.
12 changes: 12 additions & 0 deletions src/components/columns.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,18 @@ function Columns() {
states.showShortcutsSettings = true;
}
}}
onFocus={() => {
// Get current focused column
const currentFocusedColumn =
document.activeElement.closest('#columns > *');
if (currentFocusedColumn) {
// Remove focus classes from all columns
// Add focus class to current focused column
document.querySelectorAll('#columns > *').forEach((column) => {
column.classList.toggle('focus', column === currentFocusedColumn);
});
}
}}
>
{components}
</div>
Expand Down
21 changes: 19 additions & 2 deletions src/utils/focus-deck.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,25 @@ const focusDeck = () => {
let timer = setTimeout(() => {
const columns = document.getElementById('columns');
if (columns) {
// Focus first column
columns.querySelector('.deck-container')?.focus?.();
// Focus focused column
const focusedColumn = columns.querySelector('.deck-container.focus');
if (focusedColumn) {
focusedColumn.focus();
} else {
// Focus first column within viewport
const firstVisibleColumn = columns
.querySelectorAll('.deck-container')
.find((column) => {
const columnRect = column.getBoundingClientRect();
return columnRect.left >= 0;
});
if (firstVisibleColumn) {
firstVisibleColumn.focus();
} else {
// Focus first column
columns.querySelector('.deck-container')?.focus?.();
}
}
} else {
const modals = document.querySelectorAll('#modal-container > *');
if (modals?.length) {
Expand Down

0 comments on commit 6a4e142

Please sign in to comment.