diff --git a/packages/prompts/src/__tests__/__snapshots__/render.spec.ts.snap b/packages/prompts/src/__tests__/__snapshots__/render.spec.ts.snap index 05af0a6b43..91ace046ec 100644 --- a/packages/prompts/src/__tests__/__snapshots__/render.spec.ts.snap +++ b/packages/prompts/src/__tests__/__snapshots__/render.spec.ts.snap @@ -52,6 +52,7 @@ exports[`prompt renderers > renders multiselect with cursor marker plus checkbox Second line › ◼ Beta ◻ Gamma + Press space to select, enter to submit " `; diff --git a/packages/prompts/src/multi-select.ts b/packages/prompts/src/multi-select.ts index 9c016f0a50..cc8128e8c0 100644 --- a/packages/prompts/src/multi-select.ts +++ b/packages/prompts/src/multi-select.ts @@ -120,6 +120,15 @@ export const multiselect = (opts: MultiSelectOptions) => { ); }; const required = opts.required ?? true; + const hint = + ' ' + + color.reset( + color.dim( + `Press ${color.gray(color.bgWhite(color.inverse(' space ')))} to select, ${color.gray( + color.bgWhite(color.inverse(' enter ')), + )} to submit`, + ), + ); return new MultiSelectPrompt({ options: opts.options, @@ -131,13 +140,7 @@ export const multiselect = (opts: MultiSelectOptions) => { cursorAt: opts.cursorAt, validate(selected: Value[] | undefined) { if (required && (selected === undefined || selected.length === 0)) { - return `Please select at least one option.\n${color.reset( - color.dim( - `Press ${color.gray(color.bgWhite(color.inverse(' space ')))} to select, ${color.gray( - color.bgWhite(color.inverse(' enter ')), - )} to submit`, - ), - )}`; + return `Please select at least one option.\n${hint}`; } return undefined; }, @@ -221,7 +224,7 @@ export const multiselect = (opts: MultiSelectOptions) => { columnPadding: prefix.length, rowPadding: titleLineCount + footerLineCount, style: styleOption, - }).join(`\n${prefix}`)}\n${footer}\n`; + }).join(`\n${prefix}`)}\n${hint}\n${footer}\n`; } default: { const prefix = hasGuide ? `${color.blue(S_BAR)} ` : nestedPrefix; @@ -236,7 +239,7 @@ export const multiselect = (opts: MultiSelectOptions) => { columnPadding: prefix.length, rowPadding: titleLineCount + footerLineCount, style: styleOption, - }).join(`\n${prefix}`)}\n${hasGuide ? color.blue(S_BAR_END) : ''}\n`; + }).join(`\n${prefix}`)}\n${hint}\n${hasGuide ? color.blue(S_BAR_END) : ''}\n`; } } },