@1771technologies/lytenyte-pro
Version:
Blazingly fast headless React data grid with 100s of features.
23 lines (22 loc) • 686 B
JavaScript
const DEFAULT_KEYBINDINGS = {
accept: ["Enter", "Tab"],
dismiss: ["Escape"],
navigateUp: ["ArrowUp"],
navigateDown: ["ArrowDown"],
};
export function handleCompletionKeyDown(key, keybindings) {
const bindings = { ...DEFAULT_KEYBINDINGS, ...keybindings };
if (bindings.navigateUp.includes(key)) {
return { type: "navigate", direction: "up" };
}
if (bindings.navigateDown.includes(key)) {
return { type: "navigate", direction: "down" };
}
if (bindings.accept.includes(key)) {
return { type: "accept" };
}
if (bindings.dismiss.includes(key)) {
return { type: "dismiss" };
}
return { type: "none" };
}