UNPKG

@lyra/vision

Version:

React-based data management tool for Lyra projects

75 lines (55 loc) 1.94 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _propTypes = require('prop-types'); var _propTypes2 = _interopRequireDefault(_propTypes); var _reactJsonInspector = require('react-json-inspector'); var _reactJsonInspector2 = _interopRequireDefault(_reactJsonInspector); var _JsonDump = require('./JsonDump'); var _JsonDump2 = _interopRequireDefault(_JsonDump); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } class ResultCollection extends _react2.default.PureComponent { constructor(props) { super(props); this.state = { expanded: [] }; } handleToggleExpandRow(id) { const expanded = this.state.expanded; const currentIndex = expanded.indexOf(id); if (currentIndex === -1) { expanded.push(id); } else { expanded.splice(currentIndex, 1); } } getExpandRowHandler(id) { return () => this.handleToggleExpandRow(id); } isExpanded(id) { return this.state.expanded.indexOf(id) !== -1; } shouldExpand(path, item) { // Expand root-level nodes and refs return !isNaN(path) || item && item._ref; } render() { return this.props.viewMode === 'inspect' ? _react2.default.createElement(_reactJsonInspector2.default, { className: 'vision_result-list', data: this.props.data, isExpanded: this.shouldExpand, search: false, filterOptions: { ignoreCase: true } }) : _react2.default.createElement(_JsonDump2.default, { data: this.props.data }); } } ResultCollection.propTypes = { data: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.arrayOf(_propTypes2.default.object)]), viewMode: _propTypes2.default.oneOf(['inspector', 'dump']) }; ResultCollection.defaultProps = { viewMode: 'dump' }; exports.default = ResultCollection;