in src/components/FormRenderer/components/FieldArray/components/FieldArrayItem/index.tsx [67:133]
name: getFieldKey(field.name),
key: getFieldKey(field.name),
stretch: true,
label: (collapse || displayLablePerItem) && field.label,
description: (collapse || displayLablePerItem) && field.description,
};
});
}, [fields, showError, collapse, getFieldKey, displayLablePerItem]);
const testId = props['data-testid'];
const getBox = useCallback(
(field: Field) => (
<Box width="100%" pr={1}>
{formOptions.renderForm([
{
...field,
'data-testid': `${testId}-${field.name}`,
},
])}
</Box>
),
[formOptions, testId]
);
const getHeader = useCallback(
(field: Field) => (
<Box>
{field.label && <InputLabel htmlFor={getFieldKey(field.name)}>{field.label}</InputLabel>}
{field.description && (
<Typography variant="subtitle1" component="div">
{field.description}
</Typography>
)}
</Box>
),
[getFieldKey]
);
const renderRow = useCallback(
(list: Field[], getContent: (field: Field) => ReactNode, isHeaderRow = false) => {
const buttonBoxProps = isHeaderRow
? {
visibility: 'hidden',
height: '1px',
}
: collapse
? {
display: 'flex',
alignItems: 'center',
'data-testid': `${testId}-remove-button`,
}
: {
display: 'flex',
alignItems: 'flex-start',
pt: 0.3,
'data-testid': `${testId}-remove-button`,
};
const getKey = (field: Field) => (isHeaderRow ? `${field.name}-header` : field.key);
return (
<Box>
{fieldIndex !== 0 && collapse && <Divider orientation="horizontal" />}
<Box display="flex">
<Box flexGrow={1}>
{collapse ? (
<Stack spacing="xs">
{list.map((field) => (