import FormLabel from '@material-ui/core/FormLabel';
import useTheme from '@material-ui/core/styles/useTheme';
import React from 'react';
import { connectField, HTMLFieldProps } from 'uniforms';
import AutoField from './AutoField';
import wrapField from './wrapField';
// FIXME: wrapField is not typed correctly.
export type NestFieldProps = HTMLFieldProps<
object,
HTMLDivElement,
{ helperText?: string; itemProps?: object; fullWidth?: boolean; margin?: any }
>;
function Nest({
children,
fields,
itemProps,
label,
...props
}: NestFieldProps) {
const theme = useTheme();
const formControlThemeProps = theme.props?.MuiFormControl;
return wrapField(
{
fullWidth: formControlThemeProps?.fullWidth ?? true,
margin: formControlThemeProps?.margin ?? 'dense',
...props,
component: undefined,
},
label && {label},
children ||
fields.map(field => (
)),
);
}
export default connectField(Nest);