awv3
Version:
⚡ AWV3 embedded CAD
61 lines (55 loc) • 2.15 kB
JavaScript
// TODO: This needs its own repo to work, otherwise awv3 would have to pull react along
/*import React from 'react';
import { connect } from 'react-redux';
import JSONTree from 'react-json-tree';
import Plugin from '../../session/plugin';
import { Button, Group, Checkbox, Custom } from '../../session/elements';
const resources = ['isometric'].reduce((prev, item) => ({ ...prev, [item]: require('!!url-loader!awv3-icons/32x32/' + item + '.png') }), {});
const theme = {
scheme: 'flat',
author: 'chris kempson (http://chriskempson.com)',
base00: 'transparent',
base01: '#34495E',
base02: '#7F8C8D',
base03: '#95A5A6',
base04: '#BDC3C7',
base05: '#e0e0e0',
base06: '#f5f5f5',
base07: '#ECF0F1',
base08: '#E74C3C',
base09: '#E67E22',
base0A: '#F1C40F',
base0B: '#2ECC71',
base0C: '#1ABC9C',
base0D: '#3498DB',
base0E: '#9B59B6',
base0F: '#be643c'
};
@connect((state, props) => ({ tree: state.connections[state.globals.activeConnection].tree }))
class JsonView extends React.PureComponent {
static contextTypes = { session: React.PropTypes.object };
render() {
let data = this.props.resolve
? this.context.session.activeConnectionClass.resolveTree(this.props.tree.root)[0]
: this.props.tree;
return (
<div style={{ fontFamily: 'monospace' }}>
<JSONTree data={data} theme={theme} invertTheme={false} />
</div>
);
}
}
export default class Interpreter extends Plugin {
constructor(session, args) {
super(session, { type: 'Json', icon: 'isometric', resources, ...args });
this.resolve = new Checkbox(this, { name: 'Resolve', value: true });
this.addElement(new Group(this, { format: Group.Format.Table, children: [this.resolve] }));
this.input = new Custom(this, { name: 'Json', value: <JsonView resolve={true} /> });
this.addElement(this.input);
}
onEnabled() {
this.resetElements();
this.resolve.observe(state => state.value, value => this.input.value = <JsonView resolve={value} />);
}
}*/
"use strict";