Skip to content

Commit fff27fe

Browse files
author
Alex Patterson
committed
add cmd k and escape for search
1 parent d741a52 commit fff27fe

1 file changed

Lines changed: 24 additions & 1 deletion

File tree

frontend/main/src/components/algolia/SearchModal.tsx

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import React, { useState } from 'react';
1+
import React, { useCallback, useEffect, useState } from 'react';
22
import AlgoliaInstantSearch from './algoliaInstantSearch';
33

44
export default function SearchModal(): JSX.Element {
@@ -12,6 +12,29 @@ export default function SearchModal(): JSX.Element {
1212
setShow(false);
1313
};
1414

15+
const escFunction = useCallback((e) => {
16+
e.preventDefault();
17+
if (e.keyCode === 27) {
18+
setShow(false);
19+
}
20+
}, []);
21+
22+
const cmdKFunction = useCallback((e) => {
23+
e.preventDefault();
24+
if ((e.metaKey || e.ctrlKey) && e.code === 'KeyK') {
25+
setShow(true);
26+
}
27+
}, []);
28+
29+
useEffect(() => {
30+
document.addEventListener('keydown', escFunction, false);
31+
document.addEventListener('keydown', cmdKFunction, false);
32+
return () => {
33+
document.removeEventListener('keydown', escFunction, false);
34+
document.removeEventListener('keydown', cmdKFunction, false);
35+
};
36+
}, []);
37+
1538
const Modal = ({ handleClose, show, children }: any) => {
1639
const showHideclassNameName = show
1740
? 'fixed inset-0 z-50 bg-basics-900 dark:bg-basics-900 dark:bg-opacity-50 bg-opacity-50 grid place-items-center h-screen'

0 commit comments

Comments
 (0)