26 lines
708 B
TypeScript
26 lines
708 B
TypeScript
// ── Keyboard input via blessed ────────────────────────
|
|
import type blessed from "blessed";
|
|
|
|
export type Key = "left" | "right" | "up" | "down" | "space" | "p" | "r" | "q";
|
|
|
|
/** Wire blessed screen key events to a callback. */
|
|
export function startInput(
|
|
screen: blessed.Widgets.Screen,
|
|
onKey: (key: Key) => void,
|
|
): void {
|
|
screen.key(
|
|
["left", "right", "up", "down", "space", "p", "r", "q", "C-c"],
|
|
(_ch, key) => {
|
|
if (key.name === "q") {
|
|
screen.destroy();
|
|
process.exit(0);
|
|
}
|
|
if (key.name === "C-c") {
|
|
screen.destroy();
|
|
process.exit(0);
|
|
}
|
|
onKey(key.name as Key);
|
|
},
|
|
);
|
|
}
|