-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path_entity-editor.jsx
76 lines (74 loc) · 2.59 KB
/
_entity-editor.jsx
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
import React from 'react'
import { TextField, DatePicker } from 'react-md'
import debounce from '../../lib/debounce'
const updateFormHelper = debounce(({ fieldDefinitions, fieldName, val, updateForm }) =>
updateForm({ [fieldName]: val }, () => (fieldDefinitions[fieldName].pristine = false))
)
export default ({ className = null, fieldDefinitions, updateForm, ...fields }) => (
<>
{Object.entries(fieldDefinitions)
.filter(([, { display }]) => display)
.map(([fieldName, { type, label, editable }], i) =>
type === 'String' ? (
<TextField
id={'update-form-entity' + i}
key={i}
rows={1}
maxRows={15}
floating
className={className || 'sf-editor-field'}
label={label}
disabled={!editable}
value={fields[fieldName] || ''}
onChange={val => updateFormHelper({ fieldDefinitions, fieldName, val, updateForm })}
/>
) : type === 'Date' ? (
<DatePicker
id={'update-form-entity' + i}
key={i}
className={className || 'sf-editor-field'}
label={label}
value={
fields[fieldName] == null ? '' : fields[fieldName].substring(0, 10).replace(/-/g, '/')
}
disabled={!editable}
onChange={val => updateFormHelper({ fieldDefinitions, fieldName, val, updateForm })}
/>
) : type === 'Integer' ? (
<TextField
id={'update-form-entity' + i}
key={i}
floating
type={'number'}
className={className || 'sf-editor-field'}
label={label}
disabled={!editable}
value={fields[fieldName] || 0}
onChange={val =>
updateFormHelper({ fieldDefinitions, fieldName, val: parseInt(val), updateForm })
}
/>
) : type === 'Float' ? (
<TextField
id={'update-form-entity' + i}
key={i}
floating
type={'number'}
className={className || 'sf-editor-field'}
label={label}
disabled={!editable}
value={fields[fieldName] || 0}
onChange={val =>
updateFormHelper({ fieldDefinitions, fieldName, val: parseFloat(val), updateForm })
}
/>
) : type === 'Relation mutation' ? (
''
) : (
<p key={'update-form-entity' + i} style={{ marginTop: '15px', color: 'red' }}>
{fieldName} data type not supported!
</p>
)
)}
</>
)