redux-devtools/packages/react-json-tree/src/JSONObjectNode.js
Mihail Diordiev b80cc9e5b9
Merge react-json-tree package (#428)
* Merge react-json-tree from alexkuz/react-json-tree

* Npm package config

* Add credits

* Stick `eslint-plugin-react` to `7.4.0` till change deprecated `componentWillReceiveProps`
2018-12-21 21:18:05 +02:00

30 lines
829 B
JavaScript

import React from 'react';
import PropTypes from 'prop-types';
import JSONNestedNode from './JSONNestedNode';
// Returns the "n Items" string for this node,
// generating and caching it if it hasn't been created yet.
function createItemString(data) {
const len = Object.getOwnPropertyNames(data).length;
return `${len} ${len !== 1 ? 'keys' : 'key'}`;
}
// Configures <JSONNestedNode> to render an Object
const JSONObjectNode = ({ data, ...props }) => (
<JSONNestedNode
{...props}
data={data}
nodeType="Object"
nodeTypeIndicator={props.nodeType === 'Error' ? 'Error()' : '{}'}
createItemString={createItemString}
expandable={Object.getOwnPropertyNames(data).length > 0}
/>
);
JSONObjectNode.propTypes = {
data: PropTypes.object,
nodeType: PropTypes.string
};
export default JSONObjectNode;