diff --git a/src/prompt/elements/confirm.js b/src/prompt/elements/confirm.js index 8a7a516..b4e227f 100644 --- a/src/prompt/elements/confirm.js +++ b/src/prompt/elements/confirm.js @@ -98,6 +98,9 @@ export default class ConfirmPrompt extends Prompt { } _(c, key) { + if (c === undefined) { + return; + } if (!Number.isNaN(Number.parseInt(c))) { const n = Number.parseInt(c) - 1; this.moveCursor(n); diff --git a/src/prompt/elements/multiselect.js b/src/prompt/elements/multiselect.js index d821fc0..fb0c7ba 100644 --- a/src/prompt/elements/multiselect.js +++ b/src/prompt/elements/multiselect.js @@ -73,6 +73,9 @@ export default class MultiselectPrompt extends Prompt { } _(c, key) { + if (c === undefined) { + return; + } if (c === ' ') { return this.toggle(); } diff --git a/src/prompt/elements/select.js b/src/prompt/elements/select.js index ca89b88..03294be 100644 --- a/src/prompt/elements/select.js +++ b/src/prompt/elements/select.js @@ -55,6 +55,9 @@ export default class SelectPrompt extends Prompt { _(c, key) { if (this.timeout) clearTimeout(this.timeout); + if (c === undefined) { + return; + } if (!Number.isNaN(Number.parseInt(c))) { const n = Number.parseInt(c) - 1; this.moveCursor(n); diff --git a/src/prompt/elements/text.js b/src/prompt/elements/text.js index a83278d..45ba0ea 100644 --- a/src/prompt/elements/text.js +++ b/src/prompt/elements/text.js @@ -114,6 +114,9 @@ export default class TextPrompt extends Prompt { } _(c, key) { + if (c === undefined) { + return; + } let s1 = this.value.slice(0, this.cursor); let s2 = this.value.slice(this.cursor); this.value = `${s1}${c}${s2}`; diff --git a/src/prompt/util/action.ts b/src/prompt/util/action.ts index 3c70480..0106fcf 100644 --- a/src/prompt/util/action.ts +++ b/src/prompt/util/action.ts @@ -20,6 +20,7 @@ export const action = (key: Key, isSelect: boolean) => { if (key.name === 'return') return 'submit'; if (key.name === 'enter') return 'submit'; // ctrl + J + if (key.code === 'OM') return 'submit'; // shift + enter if (key.name === 'backspace') return 'delete'; if (key.name === 'delete') return 'deleteForward'; if (key.name === 'abort') return 'abort';