Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
pterodactyl
GitHub Repository: pterodactyl/panel
Path: blob/1.0-develop/resources/scripts/components/dashboard/search/SearchContainer.tsx
7461 views
1
import React, { 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
{visible && <SearchModal appear visible={visible} onDismissed={() => setVisible(false)} />}
22
<Tooltip placement={'bottom'} content={'Search'}>
23
<div className={'navigation-link'} onClick={() => setVisible(true)}>
24
<FontAwesomeIcon icon={faSearch} />
25
</div>
26
</Tooltip>
27
</>
28
);
29
};
30
31