Skip to content

zch233/ink-confirm-input2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published