| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
TODO: Update README
React JSON Viewer Component, Extracted from redux-devtools. Supports iterable objects, such as Immutable.js.
import JSONTree from 'react-json-tree'
// If you're using Immutable.js: `npm i --save immutable`
import { Map } from 'immutable'
// Inside a React component:
const json = {
array: [1, 2, 3],
bool: true,
object: {
foo: 'bar'
}
immutable: Map({ key: 'value' })
}
<JSONTree data={json} />Check out examples directory for more details.
This component now uses react-base16-styling module, which allows to customize component via theme property, which can be the following:
Every theme has a light version, which is enabled with isLightTheme prop.
const theme = {
scheme: 'monokai',
author: 'wimer hazenberg (http://www.monokai.nl)',
base00: '#272822',
base01: '#383830',
base02: '#49483e',
base03: '#75715e',
base04: '#a59f85',
base05: '#f8f8f2',
base06: '#f5f4f1',
base07: '#f9f8f5',
base08: '#f92672',
base09: '#fd971f',
base0A: '#f4bf75',
base0B: '#a6e22e',
base0C: '#a1efe4',
base0D: '#66d9ef',
base0E: '#ae81ff',
base0F: '#cc6633'
};
<div>
<JSONTree data={data} theme={theme} isLightTheme={false} />
</div><div>
<JSONTree data={data} theme={{
extend: theme,
// underline keys for literal values
valueLabel: {
textDecoration: 'underline'
},
// switch key for objects to uppercase when object is expanded.
// `nestedNodeLabel` receives additional arguments `expanded` and `keyPath`
nestedNodeLabel: ({ style }, nodeType, expanded) => ({
style: {
...style,
textTransform: expanded ? 'uppercase' : style.textTransform
}
})
}} />
</div>You can pass getItemString to customize the way arrays, objects, and iterable nodes are displayed (optional).
By default, it'll be:
<JSONTree getItemString={(type, data, itemType, itemString)
=> <span>{itemType} {itemString}</span>}But if you pass the following:
const getItemString = (type, data, itemType, itemString)
=> (<span> // {type}</span>);Then the preview of child elements now look like this:
You can pass the following properties to customize rendered labels and values:
<JSONTree
labelRenderer={raw => <strong>{raw}</strong>}
valueRenderer={raw => <em>{raw}</em>}
/>In this example the label and value will be rendered with <strong> and <em> wrappers respectively.
For labelRenderer, you can provide a full path - see this PR.
MIT
| Back | FazBrowse Home | New Git URL |