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

Commit e5ab132

Browse files
committed
Merge pull request #29 from goloveychuk/master
added hideRoot prop
2 parents eb4a631 + e14e090 commit e5ab132

File tree

3 files changed

+34
-16
lines changed

3 files changed

+34
-16
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ In this example the label and value will be rendered with `<strong>` and `<em>`
133133
#### More Options
134134
135135
- Add `expandAll` property to expand all nodes.
136-
136+
- Add `hideRoot={true}` to hide a root node.
137137
### Credits
138138
139139
- All credits to [Dave Vedder](http://www.eskimospy.com/) ([[email protected]](mailto:[email protected])), who wrote the original code as [JSONViewer](https://bitbucket.org/davevedder/react-json-viewer/).

src/JSONObjectNode.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ function renderItemString({
1818

1919
// Returns the child nodes for each entry in iterable.
2020
// If we have generated them previously we return from cache; otherwise we create them.
21-
function getChildNodes({
21+
export function getChildNodes({
2222
data,
2323
getItemString,
2424
labelRenderer,

src/index.js

Lines changed: 32 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import React from 'react';
77
import grabNode from './grab-node';
88
import solarized from './themes/solarized';
9+
import {getChildNodes} from './JSONObjectNode';
910

1011
const styles = {
1112
tree: {
@@ -30,12 +31,14 @@ export default class JSONTree extends React.Component {
3031
data: React.PropTypes.oneOfType([
3132
React.PropTypes.array,
3233
React.PropTypes.object
33-
]).isRequired
34+
]).isRequired,
35+
hideRoot: React.PropTypes.bool
3436
};
3537

3638
static defaultProps = {
3739
expandRoot: true,
3840
expandAll: false,
41+
hideRoot: false,
3942
keyName: 'root',
4043
theme: solarized,
4144
getArrowStyle: getEmptyStyle,
@@ -73,25 +76,40 @@ export default class JSONTree extends React.Component {
7376
theme
7477
} = this.props;
7578

76-
const rootNode = grabNode({
77-
getItemString,
78-
initialExpanded,
79-
allExpanded,
80-
key,
81-
previousData,
82-
styles: getStyles,
83-
theme,
84-
labelRenderer,
85-
value,
86-
valueRenderer
87-
});
79+
var nodeToRender;
80+
81+
if (!this.props.hideRoot) {
82+
nodeToRender = grabNode({
83+
getItemString,
84+
initialExpanded,
85+
allExpanded,
86+
key,
87+
previousData,
88+
styles: getStyles,
89+
theme,
90+
labelRenderer,
91+
value,
92+
valueRenderer
93+
});
94+
} else {
95+
nodeToRender = getChildNodes({
96+
data: value,
97+
getItemString,
98+
labelRenderer,
99+
previousData,
100+
styles:getStyles,
101+
theme,
102+
valueRenderer,
103+
allExpanded
104+
});
105+
}
88106

89107
return (
90108
<ul style={{
91109
...styles.tree,
92110
...this.props.style
93111
}}>
94-
{rootNode}
112+
{nodeToRender}
95113
</ul>
96114
);
97115
}

0 commit comments

Comments
 (0)