Skip to content

Commit 4595935

Browse files
Fix: prevent arrow key nav conflict inside textareas
1 parent 9d1d6d2 commit 4595935

File tree

1 file changed

+20
-6
lines changed

1 file changed

+20
-6
lines changed

common-theme/assets/scripts/solo-view.js

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,14 @@ class SoloView extends HTMLElement {
1212
fragment: null,
1313
touchStartX: 0,
1414
touchEndX: 0,
15-
};
16-
// Adding window and doc event listeners
15+
}; // Adding window and doc event listeners
1716
window.addEventListener(
1817
"hashchange",
19-
{ passive: true },
20-
this.handleFragment.bind(this)
18+
this.handleFragment.bind(this),
19+
{ passive: true }
2120
);
21+
// Note: We're keeping document keydown listener for wider page coverage
22+
// but the handler will now check for editable elements
2223
document.addEventListener("keydown", this.handleKeydown.bind(this));
2324
}
2425

@@ -78,7 +79,11 @@ class SoloView extends HTMLElement {
7879
{ passive: true }
7980
);
8081

81-
this.addEventListener("keydown", this.handleKeydown, { passive: true });
82+
this.addEventListener(
83+
"keydown",
84+
this.handleKeydown,
85+
{ passive: false } // Changed from true to false so we can call preventDefault when appropriate
86+
);
8287
}
8388

8489
// Update current block index
@@ -118,11 +123,20 @@ class SoloView extends HTMLElement {
118123
this.navigateNext(new Event("swipe"));
119124
}
120125
};
121-
122126
handleKeydown = (event) => {
127+
// Don't intercept arrow keys if they occurred in a form control that uses arrow keys
128+
const target = event.target;
129+
if (target.tagName === 'TEXTAREA' ||
130+
target.tagName === 'INPUT' ||
131+
target.tagName === 'SELECT' ||
132+
target.isContentEditable) {
133+
return; // Allow default behavior for arrow keys in editable elements
134+
}
135+
123136
if (event.key === "ArrowLeft") {
124137
this.navigateBack(event);
125138
}
139+
126140
if (event.key === "ArrowRight") {
127141
this.navigateNext(event);
128142
}

0 commit comments

Comments
 (0)