Skip to content
This repository was archived by the owner on May 14, 2020. It is now read-only.

Commit 15f2eed

Browse files
committed
Merge pull request #6 from EvanSimpson/allow-any-root
Allow any node type to be root node
2 parents ba29301 + 230a3a4 commit 15f2eed

File tree

2 files changed

+6
-10
lines changed

2 files changed

+6
-10
lines changed

src/grab-node.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,14 @@ import JSONNumberNode from './JSONNumberNode';
88
import JSONBooleanNode from './JSONBooleanNode';
99
import JSONNullNode from './JSONNullNode';
1010

11-
export default function(key, value, prevValue, theme) {
11+
export default function(key, value, prevValue, theme, initialExpanded = false) {
1212
const nodeType = objType(value);
1313
if (nodeType === 'Object') {
14-
return <JSONObjectNode data={value} previousData={prevValue} theme={theme} keyName={key} key={key} />;
14+
return <JSONObjectNode data={value} previousData={prevValue} theme={theme} initialExpanded={initialExpanded} keyName={key} key={key} />;
1515
} else if (nodeType === 'Array') {
16-
return <JSONArrayNode data={value} previousData={prevValue} theme={theme} keyName={key} key={key} />;
16+
return <JSONArrayNode data={value} previousData={prevValue} theme={theme} initialExpanded={initialExpanded} keyName={key} key={key} />;
1717
} else if (nodeType === 'Iterable') {
18-
return <JSONIterableNode data={value} previousData={prevValue} theme={theme} keyName={key} key={key} />;
18+
return <JSONIterableNode data={value} previousData={prevValue} theme={theme} initialExpanded={initialExpanded} keyName={key} key={key} />;
1919
} else if (nodeType === 'String') {
2020
return <JSONStringNode keyName={key} previousValue={prevValue} theme={theme} value={value} key={key} />;
2121
} else if (nodeType === 'Number') {

src/index.js

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
import React from 'react';
77
import objectType from './obj-type';
8+
import grabNode from './grab-node';
89
import JSONObjectNode from './JSONObjectNode';
910
import JSONArrayNode from './JSONArrayNode';
1011
import solarized from './themes/solarized';
@@ -42,13 +43,8 @@ export default class JSONTree extends React.Component {
4243

4344
render() {
4445
const nodeType = objectType(this.props.data);
45-
let rootNode = false;
4646
const keyName = this.props.keyName || 'root';
47-
if (nodeType === 'Object') {
48-
rootNode = <JSONObjectNode theme={this.props.theme} data={this.props.data} previousData={this.props.previousData} keyName={keyName} initialExpanded={true} />;
49-
} else if (nodeType === 'Array') {
50-
rootNode = <JSONArrayNode theme={this.props.theme} data={this.props.data} previousData={this.props.previousData} initialExpanded={true} keyName={keyName} />;
51-
}
47+
const rootNode = grabNode(keyName, this.props.data, this.props.previousData, this.props.theme, true);
5248
return (
5349
<ul style={{
5450
...styles.tree,

0 commit comments

Comments
 (0)