// @flow import * as React from 'react'; import { Field, Form, Formik } from 'formik'; import TextInput from '../../text-input/TextInput'; import TextArea from '../../text-area/TextAreaField'; import Toggle from '../../toggle/ToggleField'; import Checkbox from '../../checkbox/CheckboxField'; import SelectField from '../../select-field/SelectField'; import PillSelectorDropdownField from '../../pill-selector-dropdown/PillSelectorDropdownField'; import DatalistItem from '../../datalist-item/DatalistItem'; import { RadioButton, RadioButtonField, RadioGroup } from '../../radio'; import notes from './Formik.stories.md'; export const basic = () => { const pillSelectorValidator = option => { const value = typeof option === 'string' ? option : option.value; return ['red', 'green', 'blue', 'yellow', 'white', 'black'].includes(value); }; return ( null} validate={values => { const errors = {}; const { textinput, textarea, pillselector } = values; if (!textinput) { errors.textinput = 'Required'; } if (!textarea) { errors.textarea = 'Required'; } if (Array.isArray(pillselector) && !pillselector.every(pill => pillSelectorValidator(pill))) { errors.pillselector = 'Bad colors'; } return errors; }} > {props => ( <>
Non-RadioGroup RadioButtons sharing the same name






RadioGroup-ed RadioButtons





options.map(option => ( {option.displayText} )) } />
                        Formik State = {JSON.stringify(props, null, 2)}
                    
)}
); }; export default { title: 'Components/Formik Elements', parameters: { notes, }, };