Skip to main content

Input Group

Blueprint InputGroup component controlled and binded to Formik Field component. Holds the same original component properties with extra following properties.

interface InputGroupProps extends Omit<FieldConfig, 'children'>, Omit<PBInputGroupProps2, 'value' | 'name'>

Reference

Props

name

name: string

Required

A field's name in Formik state, to access nested objects or arrays, name can also accept the lodash-like dot like social.facebook.

fastField

fastField: boolean

Switches to use <FastField /> Formik component instead of the regular Field component, FastField is an optimized for performance to be used on large forms (~30+ fields) or when a field has very expensive reandering requirements. Read more about FastField on Formik documentation.


Example

The following example demonstrates how to use binded Input Group component with Formik.

import React from 'react';
import { Formik, Form, FormikHelpers } from 'formik';
import * as Yup from 'yup';
import { FormGroup, InputGroup } from '../packages/core/src';

const FormValidation = Yup.object().shape({
firstName: Yup.string()
.min(2, 'Too Short!')
.max(50, 'Too Long!')
.required('Required'),
});

interface Values {
firstName: string;
lastName: string;
}

export const Page = () => {
return (
<article>
<Formik
initialValues={{
firstName: 'Ahmed',
lastName: 'Bouhuolia
}}
validationSchema={FormValidation}
onSubmit={(
values: Values,
{ setSubmitting }: FormikHelpers<Values>
) => {}}
>
<Form>
<FormGroup name={'firstName'} label={'First name'}>
<InputGroup name={'firstName'} />
</FormGroup>

<FormGroup name={'lastName'} label={'Last name'}>
<InputGroup name={'lastName'} />
</FormGroup>

<button type="submit">Submit</button>
</Form>
</Formik>
</article>
);
};