fix: object/value
This commit is contained in:
parent
b145a14821
commit
353eecd32f
5
src/client/components/types/object.raw.scss
Normal file
5
src/client/components/types/object.raw.scss
Normal file
|
@ -0,0 +1,5 @@
|
|||
:scope {
|
||||
background-color: rgba(255, 255, 255, 0.05);
|
||||
border: 1px solid rgba(255, 255, 255, 0.1);
|
||||
padding: 0.25em;
|
||||
}
|
35
src/client/components/types/object.type-renderer.jsx
Normal file
35
src/client/components/types/object.type-renderer.jsx
Normal file
|
@ -0,0 +1,35 @@
|
|||
import {compose} from '@avocado/core';
|
||||
import contempo from 'contempo';
|
||||
import PropTypes from 'prop-types';
|
||||
import React from 'react';
|
||||
|
||||
import propertyPropTypes from './property-prop-types';
|
||||
|
||||
const decorate = compose(
|
||||
contempo(require('./object.raw.scss')),
|
||||
);
|
||||
|
||||
const ObjectRenderer = ({
|
||||
value,
|
||||
}) => (
|
||||
<div className="object">
|
||||
<span className="bracket open">{'{'}</span>
|
||||
<pre contentEditable>
|
||||
<code>
|
||||
{' '}
|
||||
{JSON.stringify(value, null, 2).slice(1).slice(0, -1).trim('\n')}
|
||||
</code>
|
||||
</pre>
|
||||
<span className="bracket close">{'}'}</span>
|
||||
</div>
|
||||
);
|
||||
|
||||
ObjectRenderer.propTypes = {
|
||||
...propertyPropTypes,
|
||||
value: PropTypes.bool.isRequired,
|
||||
};
|
||||
|
||||
export default {
|
||||
type: 'object',
|
||||
component: decorate(ObjectRenderer),
|
||||
};
|
|
@ -2,21 +2,11 @@
|
|||
text-align-last: right;
|
||||
}
|
||||
|
||||
:scope {
|
||||
.literal {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.object {
|
||||
background-color: #333333;
|
||||
border: 1px solid rgba(255, 255, 255, 0.1);
|
||||
padding: 0.25em;
|
||||
}
|
||||
|
||||
.object, input {
|
||||
// border-left: none;
|
||||
}
|
||||
|
||||
select {
|
||||
.literal select {
|
||||
margin-right: 0.25em;
|
||||
}
|
||||
|
|
|
@ -6,6 +6,7 @@ import React from 'react';
|
|||
|
||||
import Bool from './bool.type-renderer';
|
||||
import Number from './number.type-renderer';
|
||||
import {default as ObjectType} from './object.type-renderer';
|
||||
import propertyPropTypes from './property-prop-types';
|
||||
import Steps from './steps';
|
||||
import String from './string.type-renderer';
|
||||
|
@ -46,18 +47,7 @@ const renderValue = (context, type, value) => {
|
|||
case 'string':
|
||||
return <String.component value={value.value} />;
|
||||
case 'object':
|
||||
return (
|
||||
<div className="object">
|
||||
<span className="bracket open">{'{'}</span>
|
||||
<pre contentEditable>
|
||||
<code>
|
||||
{' '}
|
||||
{JSON.stringify(value.value, null, 2).slice(1).slice(0, -1).trim('\n')}
|
||||
</code>
|
||||
</pre>
|
||||
<span className="bracket close">{'}'}</span>
|
||||
</div>
|
||||
);
|
||||
return <ObjectType.component value={value.value} />;
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
|
@ -81,7 +71,7 @@ const Value = ({
|
|||
options,
|
||||
type,
|
||||
value,
|
||||
}) => renderValue(context, type || 'any', value);
|
||||
}) => <span className="value">{renderValue(context, type, value)}</span>;
|
||||
|
||||
Value.propTypes = {
|
||||
...propertyPropTypes,
|
||||
|
|
Loading…
Reference in New Issue
Block a user