Make hotkeys work again (#1819)

This commit is contained in:
Ajay Bura 2024-07-18 18:50:20 +05:30 committed by GitHub
parent c52c4f7d32
commit c4abe39375
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
40 changed files with 182 additions and 39 deletions

View file

@ -1,4 +1,4 @@
import React, { useState, useEffect, useRef } from 'react';
import React, { useState, useEffect, useRef, useCallback } from 'react';
import { useAtomValue } from 'jotai';
import './Search.scss';
@ -25,6 +25,8 @@ import { roomToUnreadAtom } from '../../state/room/roomToUnread';
import { roomToParentsAtom } from '../../state/room/roomToParents';
import { allRoomsAtom } from '../../state/room-list/roomList';
import { mDirectAtom } from '../../state/mDirectList';
import { useKeyDown } from '../../hooks/useKeyDown';
import { openSearch } from '../../../client/action/navigation';
function useVisiblityToggle(setResult) {
const [isOpen, setIsOpen] = useState(false);
@ -49,6 +51,27 @@ function useVisiblityToggle(setResult) {
}
}, [isOpen]);
useKeyDown(
window,
useCallback((event) => {
// Ctrl/Cmd +
if (event.ctrlKey || event.metaKey) {
// open search modal
if (event.key === 'k') {
event.preventDefault();
// means some menu or modal window is open
if (
document.body.lastChild.className !== 'ReactModalPortal' ||
navigation.isRawModalVisible
) {
return;
}
openSearch();
}
}
}, [])
);
const requestClose = () => setIsOpen(false);
return [isOpen, requestClose];