import React, { Fragment } from 'react';
|
import {
|
TextField,
|
NumberField,
|
DateField,
|
BooleanField,
|
ReferenceField
|
} from 'react-admin';
|
|
const DynamicField = ({ fields }) => {
|
return (
|
<>
|
{fields.map((field, index) => {
|
switch (field.type) {
|
case 'text':
|
return <TextField key={index} source={field.source} label={field.label} />;
|
case 'number':
|
return <NumberField key={index} source={field.source} label={field.label} />;
|
case 'date':
|
return <DateField key={index} source={field.source} label={field.label} showTime={field.showTime} />;
|
case 'boolean':
|
return <BooleanField key={index} source={field.source} label={field.label} />;
|
case 'reference':
|
return (
|
<ReferenceField
|
key={index}
|
source={field.source}
|
label={field.label}
|
reference={field.reference}
|
link={field.link}
|
sortable={field.sortable}
|
>
|
<TextField source={field.referenceSource} />
|
</ReferenceField>
|
);
|
default:
|
return null;
|
}
|
})}
|
</>
|
);
|
};
|
|
export default DynamicField;
|