@gluestack-ui/hooks
Version:
Provides hooks used in gluestack-ui
22 lines (18 loc) • 489 B
text/typescript
import { useEffect } from 'react';
type IParams = {
enabled?: boolean;
callback: () => any;
};
export function useBackHandler({ enabled, callback }: IParams) {
useEffect(() => {
const handleEscape = (e: KeyboardEvent) => {
if (e.key === 'Escape') {
callback();
}
};
document?.body?.addEventListener?.('keyup', handleEscape);
return () => {
document?.body?.removeEventListener?.('keyup', handleEscape);
};
}, [enabled, callback]);
}