ink-confirm-input2
TypeScript icon, indicating that this package has built-in type declarations

1.0.0 • Public • Published

ink-confirm-input Build Status

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 />);

Package Sidebar

Install

npm i ink-confirm-input2

Weekly Downloads

0

Version

1.0.0

License

MIT

Unpacked Size

7.49 kB

Total Files

5

Last publish

Collaborators

  • zch233