The factory function now creates a neat wrapper object instead of returning a TreeMode object
This commit is contained in:
parent
422315dba2
commit
41821ef825
|
@ -1,43 +0,0 @@
|
||||||
import { h, Component } from 'preact'
|
|
||||||
|
|
||||||
import TreeMode from './TreeMode'
|
|
||||||
import bindMethods from './utils/bindMethods'
|
|
||||||
|
|
||||||
// TODO: implement and use JSONEditor.js after we've integrated Redux.
|
|
||||||
|
|
||||||
export default class JSONEditor extends Component {
|
|
||||||
constructor (props) {
|
|
||||||
super(props)
|
|
||||||
|
|
||||||
bindMethods(this)
|
|
||||||
|
|
||||||
this.state = {
|
|
||||||
options: props.options,
|
|
||||||
data: null
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
render () {
|
|
||||||
return h(TreeMode, {
|
|
||||||
options: this.state.options,
|
|
||||||
data: this.state.data
|
|
||||||
}, [])
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Set JSON object in editor
|
|
||||||
* @param {Object | Array | string | number | boolean | null} json JSON data
|
|
||||||
* @param {SetOptions} [options]
|
|
||||||
*/
|
|
||||||
set (json, options = {}) {
|
|
||||||
// TODO: set state via redux action
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get JSON from the editor
|
|
||||||
* @returns {Object | Array | string | number | boolean | null} json
|
|
||||||
*/
|
|
||||||
get () {
|
|
||||||
// TODO: get state from redux store
|
|
||||||
}
|
|
||||||
}
|
|
40
src/index.js
40
src/index.js
|
@ -4,17 +4,45 @@ import TreeMode from './TreeMode'
|
||||||
import '!style!css!less!./jsoneditor.less'
|
import '!style!css!less!./jsoneditor.less'
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Factory function to create a new JSONEditor
|
* Create a new json editor
|
||||||
* @param container
|
* @param {HTMLElement} container
|
||||||
* @param {Options} options
|
* @param {Options} options
|
||||||
* @return {*}
|
* @return {Object}
|
||||||
* @constructor
|
* @constructor
|
||||||
*/
|
*/
|
||||||
function jsoneditor (container, options) {
|
function jsoneditor (container, options) {
|
||||||
// TODO: use JSONEditor instead of TreeMode
|
|
||||||
const elem = render(h(TreeMode, {options}), container)
|
const elem = render(h(TreeMode, {options}), container)
|
||||||
return elem._component
|
const component = elem._component
|
||||||
|
|
||||||
|
return {
|
||||||
|
isJSONEditor: true,
|
||||||
|
|
||||||
|
_container: container,
|
||||||
|
_options: options,
|
||||||
|
_component: component,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set JSON object in editor
|
||||||
|
* @param {Object | Array | string | number | boolean | null} json JSON data
|
||||||
|
* @param {SetOptions} [options]
|
||||||
|
*/
|
||||||
|
set: function (json, options = {}) {
|
||||||
|
component.set(json, options)
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get JSON from the editor
|
||||||
|
* @returns {Object | Array | string | number | boolean | null} json
|
||||||
|
*/
|
||||||
|
get: function () {
|
||||||
|
return component.get()
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO: implement getText
|
||||||
|
// TODO: implement setText
|
||||||
|
// TODO: implement expand
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: use export default jsoneditor, doesn't work out of the box in webpack
|
// TODO: use export default jsoneditor, doesn't work out of the box in webpack
|
||||||
module.exports = jsoneditor;
|
module.exports = jsoneditor
|
||||||
|
|
Loading…
Reference in New Issue