Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
pterodactyl
GitHub Repository: pterodactyl/panel
Path: blob/develop/resources/scripts/components/dashboard/search/SearchContainer.tsx
7453 views
1
import { useState } from 'react';
2
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
3
import { faSearch } from '@fortawesome/free-solid-svg-icons';
4
import useEventListener from '@/plugins/useEventListener';
5
import SearchModal from '@/components/dashboard/search/SearchModal';
6
import Tooltip from '@/components/elements/tooltip/Tooltip';
7
8
export default () => {
9
const [visible, setVisible] = useState(false);
10
11
useEventListener('keydown', (e: KeyboardEvent) => {
12
if (['input', 'textarea'].indexOf(((e.target as HTMLElement).tagName || 'input').toLowerCase()) < 0) {
13
if (!visible && e.metaKey && e.key.toLowerCase() === '/') {
14
setVisible(true);
15
}
16
}
17
});
18
19
return (
20
<>
21
<SearchModal appear visible={visible} onDismissed={() => setVisible(false)} />
22
23
<Tooltip placement={'bottom'} content={'Search'}>
24
<div className={'navigation-link'} onClick={() => setVisible(true)}>
25
<FontAwesomeIcon icon={faSearch} />
26
</div>
27
</Tooltip>
28
</>
29
);
30
};
31
32