import React, { FC } from 'react' import type { FieldRenderProps } from 'react-final-form' import { required as requiredValidator } from 'redux-form-validators' import { composeValidators, Field, FieldProps } from '../lib/Field' import { ISelectStandardProps, SelectFieldBase, SelectHTMLElement, } from '../lib/SelectFieldBase' export interface ISelectProps extends ISelectStandardProps, FieldProps {} export const SelectField: FC = ({ children, required, validate, formControlProps = {}, ...props }) => { const render = (renderProps: FieldRenderProps) => ( {children} ) const validators = [] if (validate) { validators.push(validate) } if (required) { validators.push(requiredValidator()) } return ( , SelectHTMLElement> render={render} validate={composeValidators(validators)} {...props} /> ) } SelectField.defaultProps = { formControlProps: { fullWidth: true, }, } export default SelectField