UNPKG

awv3

Version:
61 lines (55 loc) 2.15 kB
// 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";