Comments (5)
I had the same problem, but I have a solution. Maybe not the best solution but overwrite renderDoneOrInstructions function with your own function.
type: (prev) => (prev ? null : "multiselect"),
name: "list",
message: `Chose files to resync:`,
choices: list.map((f) => {
return { title: f.name, value: f };
}),
onRender() {
if (this.firstRender) {
this.renderDoneOrInstructions = customMultiselectRender;
}
},
import color from "kleur";
export function customMultiselectRender() {
if (this.done) {
return `${color.grey(this.value.filter((e) => e.selected).length)} selected item`;
}
const output = [color.gray(this.hint), this.renderInstructions()];
if (this.value[this.cursor].disabled) {
output.push(color.yellow(this.warn));
}
return output.join(" ");
}
OR
type: (prev) => (prev ? null : "multiselect"),
name: "list",
message: `Chose files to resync:`,
choices: list.map((f) => {
return { title: f.name, value: f };
}),
onRender(kleur) {
if (this.firstRender) {
this.renderDoneOrInstructions = function() {
if (this.done) {
return `${kleur.grey(this.value.filter((e) => e.selected).length)} selected item`;
}
const output = [kleur.gray(this.hint), this.renderInstructions()];
if (this.value[this.cursor].disabled) {
output.push(kleur.yellow(this.warn));
}
return output.join(" ");
};
}
},
from prompts.
I had the same problem, but I have a solution. Maybe not the best solution but overwrite renderDoneOrInstructions function with your own function.
type: (prev) => (prev ? null : "multiselect"), name: "list", message: `Chose files to resync:`, choices: list.map((f) => { return { title: f.name, value: f }; }), onRender() { if (this.firstRender) { this.renderDoneOrInstructions = customMultiselectRender; } },
import color from "kleur"; export function customMultiselectRender() { if (this.done) { return `${color.grey(this.value.filter((e) => e.selected).length)} selected item`; } const output = [color.gray(this.hint), this.renderInstructions()]; if (this.value[this.cursor].disabled) { output.push(color.yellow(this.warn)); } return output.join(" "); }
OR
type: (prev) => (prev ? null : "multiselect"), name: "list", message: `Chose files to resync:`, choices: list.map((f) => { return { title: f.name, value: f }; }), onRender(kleur) { if (this.firstRender) { this.renderDoneOrInstructions = function() { if (this.done) { return `${kleur.grey(this.value.filter((e) => e.selected).length)} selected item`; } const output = [kleur.gray(this.hint), this.renderInstructions()]; if (this.value[this.cursor].disabled) { output.push(kleur.yellow(this.warn)); } return output.join(" "); }; } },
thank your solution !
from prompts.
Can you share the code for your prompt?
from prompts.
import prompts from 'prompts'
export const createRepoOption = (list: string[]) => {
const handler = (item: string) => {
return { title: item, value: item }
}
return [{
type: 'multiselect',
name: 'prSelect',
message: 'Please select the PR that needs to be updated',
optionsPerPage: 20,
choices: list.map(handler),
}] as unknown as prompts.PromptObject[]
}
export const promptsRun = async(option: prompts.PromptObject[]) => {
const res = await prompts(option, {
onCancel: () => {
console.log('info', 'Operation cancel')
process.exit()
},
})
return { ...res }
}
promptsRun(createRepoOption(['foo', 'bar']))
from prompts.
I don't want to output the marked part of the red box, because when my data is complex, this log will become very ugly as I said at the beginning
from prompts.
Related Issues (20)
- How to test prompts in CircleCI?
- Select crashing in VsCode + Git Bash: Cannot read properties of undefined (reading 'split') HOT 2
- Multi-option toggle. Worth it?
- Ensure types are exported HOT 3
- logic diagram
- Ast prompts
- Roadmap for a 3.0 HOT 5
- prompts captures Ctrl-W "cut word" shortcut as control character
- How to make autocomplete required or select searchable?
- Add mask option to Text Type
- Somewhat different published module than the one in the repo HOT 2
- Keypress events may not be triggered on Windows if validate callback contains async actions HOT 2
- Bun support HOT 11
- confirm element: pressing a function key throws an error
- correctly type return/resolved values instead of `any`
- Initial value not passed to validate function for `"number"` types
- When the type is multiSelect, options cannot be switched through the arrows on the keyboard HOT 1
- Better index selection when providing initial for autocomplete
- Ability to prefill input on autocomplete HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from prompts.