fix: use window.addEventListener for dropdown keyboard nav

inputRef-based listener never fired (ref null at effect time or
element-level listeners don't catch events in this React setup).
Switched to window.addEventListener matching the pattern every other
keyboard handler in this codebase already uses.
This commit is contained in:
2026-07-02 13:03:41 -04:00
parent 4ed2e5bfd0
commit 3002626ac4
+3 -5
View File
@@ -495,10 +495,8 @@ export function ChatArea() {
inputEl.setSelectionRange(pos, pos);
};
// ponytail: stable keydown handler via addEventListener avoids stale closure issues
// ponytail: window listener matches existing pattern in codebase (CommandDropdown, modals)
useEffect(() => {
const el = inputRef.current;
if (!el) return;
const handler = (e: KeyboardEvent) => {
if (e.ctrlKey && e.key === 'e') {
e.preventDefault();
@@ -568,8 +566,8 @@ export function ChatArea() {
setDropdownIndex(0);
}
};
el.addEventListener('keydown', handler);
return () => el.removeEventListener('keydown', handler);
window.addEventListener('keydown', handler);
return () => window.removeEventListener('keydown', handler);
}, [members, currentUser, activeChannelId, sendMessage, replyToMessage, handleMentionSelect]);
const handleSubmit = async (event: React.FormEvent) => {