mirror of
https://github.com/reduxjs/redux-devtools.git
synced 2024-11-16 06:36:48 +03:00
30 lines
829 B
JavaScript
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;
|