|
@@ -51,7 +51,7 @@ const EditForm = ({record, models={}, model, options=defaultAdminOptions, Compon
|
|
|
value={edit[field.name]}
|
|
|
options={options}
|
|
|
onChange={event => {
|
|
|
- setEdit({...edit, [field.name]: event && event.target && event.target.value || event})
|
|
|
+ setEdit({...edit, [field.name]: event && event.target ? event.target.value : event})
|
|
|
}}
|
|
|
/>)}
|
|
|
{Object.entries(onlyInputs).map(([key,field]) => <EFR key={key} field={field}
|
|
@@ -59,7 +59,7 @@ const EditForm = ({record, models={}, model, options=defaultAdminOptions, Compon
|
|
|
record={record}
|
|
|
value={edit[field.name]}
|
|
|
options={options}
|
|
|
- onChange={event => setEdit({...edit, [field.name]: event && event.target && event.target.value || event})}
|
|
|
+ onChange={event => setEdit({...edit, [field.name]: event && event.target ? event.target.value : event})}
|
|
|
/>)}
|
|
|
|
|
|
</tbody>
|
|
@@ -89,6 +89,7 @@ const Row = ({top, selected, children}) => {
|
|
|
const Cell = ({children, options, record, field, selected, model, models={}, onClick, ...props}) => {
|
|
|
|
|
|
let Formatter = React.Fragment
|
|
|
+ const type = (children && typeof children === 'object' && children.constructor) || model
|
|
|
|
|
|
const viewOrEdit = (!record.constructor.inputs || record.constructor.inputs.some(input => input.name === field.name)) && selected ? 'edit' : 'view'
|
|
|
const typeName = field.type.name || field.type.ofType.name
|
|
@@ -98,10 +99,9 @@ const Cell = ({children, options, record, field, selected, model, models={}, onC
|
|
|
if (field.name in options[viewOrEdit].fields){
|
|
|
Formatter = options[viewOrEdit].fields[field.name]
|
|
|
}
|
|
|
- if ((children && typeof children === 'object') || model){
|
|
|
- //if (viewOrEdit === 'edit') debugger;
|
|
|
- if ((children || model).constructor.name in options[viewOrEdit].formatters)
|
|
|
- Formatter = options[viewOrEdit].formatters[(children || model).constructor.name]
|
|
|
+ if (type){
|
|
|
+ if (type.name in options[viewOrEdit].formatters)
|
|
|
+ Formatter = options[viewOrEdit].formatters[type.name]
|
|
|
else
|
|
|
Formatter = options[viewOrEdit].formatters.Object
|
|
|
}
|
|
@@ -348,7 +348,8 @@ const defaultAdminOptions =
|
|
|
},
|
|
|
fields:{
|
|
|
createdAt: ({children}) => <>{new Date(+children).toISOString()}</> ,
|
|
|
- url: ({children}) => <a href={children}>{children}</a>
|
|
|
+ url: ({children}) => <a href={children}>{children}</a>,
|
|
|
+ color:(props) => <input type='color' {...props}/>
|
|
|
},
|
|
|
relations: {
|
|
|
Image: ({children}) => <span className="ImageRelation"><img src={children.url}/>{children.originalFileName}</span>
|
|
@@ -377,9 +378,9 @@ const defaultAdminOptions =
|
|
|
}}>{children.map((child, i) =>
|
|
|
<SortableCell onDelete={() => onChange(children.filter((item, j) => j !== i))}
|
|
|
onAdd={() => onChange([...children.slice(0, i),newItem,...children.slice(i)])}
|
|
|
- index={i} key={(child && (child._id || child.key)) || i} model={model} {...props} children={child} selected
|
|
|
+ index={i} key={(child && (child._id || child.key || child.name)) || i} model={model} {...props} children={child} selected
|
|
|
onCh={data => {
|
|
|
- data = (data && data.target && data.target.value) || data
|
|
|
+ data = (data && data.target) ? data.target.value : data
|
|
|
console.log(data, children)
|
|
|
if (!children.find(record => record && record._id === data._id)){
|
|
|
const copy = [...children]
|