Files
umami/src/components/hooks/useEscapeKey.ts
2025-11-22 22:42:42 -08:00

20 lines
505 B
TypeScript

import { type KeyboardEvent, useCallback, useEffect } from 'react';
export function useEscapeKey(handler: (event: KeyboardEvent) => void) {
const escFunction = useCallback((event: KeyboardEvent) => {
if (event.key === 'Escape') {
handler(event);
}
}, []);
useEffect(() => {
document.addEventListener('keydown', escFunction as any, false);
return () => {
document.removeEventListener('keydown', escFunction as any, false);
};
}, [escFunction]);
return null;
}