import * as React from 'react'; // @ts-ignore import * as PropTypes from 'prop-types'; // @ts-ignore import _omit from 'lodash/omit'; import RadioGroup, { LocalRadioGroupProps, RadioGroupProps, radioGroupPropTypes, radioGroupDefaultProps } from './RadioGroup'; import FieldWrapper, { LocalFieldWrapperProps, fieldWrapperDefaultProps, fieldWrapperPropTypes } from '../FieldWrapper/FieldWrapper'; import { Omit } from '../types'; import { formikField, reduxFormField } from '../adaptors/fields'; export type LocalRadioGroupFieldProps = Omit & LocalRadioGroupProps & { radioGroupProps?: Omit, 'name'>; }; export type RadioGroupFieldProps = RadioGroupProps & LocalRadioGroupFieldProps; export type RadioGroupFieldComponents = { Formik: React.FunctionComponent; ReduxForm: React.FunctionComponent; }; export const RadioGroupField: React.FunctionComponent & RadioGroupFieldComponents = ({ a11yId, a11yLabel, className, defaultValue, description, disabled, hint, isHorizontal, isOptional, isRequired, label, name, onChange, options, radioGroupProps, state, validationText, value, ...props }) => ( {({ elementProps }) => ( )} ); RadioGroupField.Formik = formikField(RadioGroupField, { hasFieldWrapper: true }); RadioGroupField.ReduxForm = reduxFormField(RadioGroupField, { hasFieldWrapper: true }); export const radioGroupFieldPropTypes = { radioGroupProps: PropTypes.shape(_omit(radioGroupPropTypes, 'options', 'name')), ..._omit(fieldWrapperPropTypes, 'children'), ...radioGroupPropTypes }; RadioGroupField.propTypes = radioGroupFieldPropTypes; export const radioGroupFieldDefaultProps = { radioGroupProps: {}, ...fieldWrapperDefaultProps, ...radioGroupDefaultProps }; RadioGroupField.defaultProps = radioGroupFieldDefaultProps; // @ts-ignore const C: React.FunctionComponent & RadioGroupFieldComponents = RadioGroupField; export default C;