ink-confirm-input2
v1.0.0
Published
Confirmation input component for Ink
Downloads
4
Maintainers
Readme
ink-confirm-input
Confirmation input component for Ink
Install
$ npm install ink-confirm-input2
Usage
import React, {useCallback, useState} from 'react';
import {render, Box, Text} from 'ink';
import ConfirmInput from 'ink-confirm-input2';
const UnicornQuestion = () => {
const [answer, setAnswer] = useState();
const [value, setValue] = useState('');
const handleSubmit = useCallback(submitValue => {
if (submitValue === false) {
setAnswer({answer: 'You are heartless…'});
return;
}
setAnswer({answer: 'You love unicorns!'});
}, [setAnswer]);
return (
<Box>
<Text>Do you like unicorns? (Y/n)</Text>
<ConfirmInput
isChecked
value={value}
onChange={setValue}
onSubmit={handleSubmit}
/>
{answer && answer}
</Box>
);
};
render(<UnicornQuestion/>);
API
<ConfirmInput/>
Props
<ConfirmInput/>
accepts the same props as <TextInput/>
in addition to the ones below.
isChecked
Type: boolean
Whether to return true
or false
by default.
value
Type: string
Value to display in a text input.
placeholder
Type: string
Text to display when value
is empty.
onChange
Type: Function
Function to call when value updates. Returns a string
with the input.
onSubmit
Type: Function
Function to call when user press Enter. Returns a boolean
for the answer.
Uncontrolled usage
This component also exposes an uncontrolled version, which handles value
changes for you. To receive the final input value, use onSubmit
prop.
Initial value can be specified via initialValue
prop, which is supported only in UncontrolledTextInput
component.
import React from 'react';
import {render, Box, Text} from 'ink';
import {UncontrolledConfirmInput} from 'ink-confirm-input2';
const UnicornQuestion = () => {
const [answer, setAnswer] = useState();
const handleSubmit = submitValue => {
if (submitValue === false) {
setAnswer({answer: 'You are heartless…'});
return;
}
setAnswer({answer: 'You love unicorns!'});
};
return (
<Box>
<Text>Do you like unicorns? (Y/n)</Text>
<UncontrolledConfirmInput
isChecked
onSubmit={handleSubmit}
/>
{answer && answer}
</Box>
);
};
render(<SearchQuery />);