verou
2025-03-19 f9a1b57d35529f8b8162e6dc7956d7b78375edd4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
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;