mirror of
https://github.com/xibyte/jsketcher
synced 2025-12-06 16:33:15 +01:00
27 lines
No EOL
836 B
JavaScript
27 lines
No EOL
836 B
JavaScript
import React from 'react';
|
|
import ls from './RenderObject.less';
|
|
|
|
export default function RenderObject({object}) {
|
|
return <div className={ls.root}><RenderObjectImpl object={object}/></div>
|
|
}
|
|
|
|
function RenderObjectImpl({object, inner}) {
|
|
if (object === undefined || object === null) {
|
|
return <span>{object}</span>;
|
|
}
|
|
if (typeof object === 'object') {
|
|
return <div style={{marginLeft: inner?10:0}}>
|
|
{Object.keys(object).map(field => <div key={field}>
|
|
{field}: <RenderObjectImpl object={object[field]} inner/>
|
|
</div>)}
|
|
</div>;
|
|
} else if (Array.isArray(object)) {
|
|
return <div style={{marginLeft: inner?10:0}}>
|
|
{object.map((item, i) => <div key={i}>
|
|
<div><RenderObject object={object[item]} inner/></div>
|
|
</div>)}
|
|
</div>;
|
|
} else {
|
|
return <span>{object}</span>;
|
|
}
|
|
} |