@gravity-ui/uikit
Version:
Gravity UI base styling and components
22 lines (21 loc) • 688 B
JavaScript
import * as React from 'react';
import { KeyCode } from "../../constants.js";
export function createOnKeyDownHandler(callback) {
return (event) => {
if (callback &&
[KeyCode.ENTER, KeyCode.SPACEBAR, KeyCode.SPACEBAR_OLD].includes(event.key)) {
event.preventDefault();
callback(event);
}
};
}
/**
* Emulates behaviour of system controls, that respond to Enter and Spacebar
* @param callback
* @return {onKeyDown}
*/
export function useActionHandlers(callback) {
const onKeyDown = React.useMemo(() => createOnKeyDownHandler(callback), [callback]);
return { onKeyDown };
}
//# sourceMappingURL=useActionHandlers.js.map