Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
module.exports = createPrompt((config, done) => {
const [status, setStatus] = useState('pending');
const [defaultValue, setDefaultValue] = useState(config.default);
const [errorMsg, setError] = useState();
const [value, setValue] = useState('');
const isLoading = status === 'loading';
const prefix = usePrefix(isLoading);
useKeypress(async (key, rl) => {
// Ignore keypress while our prompt is doing other processing.
if (status !== 'pending') {
return;
}
if (isEnterKey(key)) {
const answer = value || defaultValue || '';
setStatus('loading');
const isValid = await config.validate(answer);
if (isValid === true) {
setValue(answer);
setStatus('done');
done(answer);
} else {
module.exports = createPrompt((config, done) => {
const [status, setStatus] = useState('pending');
const [value, setValue] = useState('');
const prefix = usePrefix();
useKeypress((key, rl) => {
if (isEnterKey(key)) {
const answer = value ? /^y(es)?/i.test(value) : config.default !== false;
setValue(answer ? 'yes' : 'no');
setStatus('done');
done(answer);
} else {
setValue(rl.line);
}
});
let formattedValue = value;
let defaultValue = '';
if (status === 'done') {
formattedValue = chalk.cyan(value ? 'yes' : 'no');
module.exports = createPrompt((config, done) => {
const {
choices,
default: defaultKey = 'h',
expanded: defaultExpandState = false
} = config;
const [status, setStatus] = useState('pending');
const [value, setValue] = useState('');
const [expanded, setExpanded] = useState(defaultExpandState);
const [errorMsg, setError] = useState();
const prefix = usePrefix();
useKeypress((key, rl) => {
if (isEnterKey(key)) {
const answer = (value || defaultKey).toLowerCase();
if (answer === 'h' && !expanded) {
setExpanded(true);
} else {
const selectedChoice = choices.find(({ key }) => key === answer);
if (selectedChoice) {
const finalValue = selectedChoice.value || selectedChoice.name;
setValue(finalValue);
setStatus('done');
done(finalValue);
} else if (value === '') {
setError('Please input a value');
} else {
module.exports = createPrompt((config, done) => {
const [status, setStatus] = useState('pending');
const [cursorPosition, setCursorPos] = useState(0);
const { choices, pageSize = 7 } = config;
const paginator = useRef(new Paginator()).current;
const prefix = usePrefix();
useKeypress(key => {
if (isEnterKey(key)) {
setStatus('done');
done(choices[cursorPosition].value);
} else if (isUpKey(key) || isDownKey(key)) {
let newCursorPosition = cursorPosition;
const offset = isUpKey(key) ? -1 : 1;
let selectedOption;
while (!selectedOption || selectedOption.disabled) {
newCursorPosition =
(newCursorPosition + offset + choices.length) % choices.length;
selectedOption = choices[newCursorPosition];
}