@talend/react-components
Version:
Set of react components.
75 lines (73 loc) • 2.38 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = ObjectViewer;
var _propTypes = _interopRequireDefault(require("prop-types"));
var _react = require("react");
var _Table = _interopRequireDefault(require("./Table"));
var _JSONLike = _interopRequireDefault(require("./JSONLike"));
var _List = _interopRequireDefault(require("./List"));
var _convertDate = require("./convertDate");
var _jsxRuntime = require("react/jsx-runtime");
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
const DISPLAY_MODES = {
FLAT: 'flat',
TABLE: 'table',
TREE: 'tree',
LIST: 'list'
};
function ObjectViewer({
displayMode,
dataSchema,
data,
...props
}) {
if (!data) {
return null;
}
// check if we need to convert timestamp to ISO String Date
const toConvert = (0, _react.useMemo)(() => (0, _convertDate.checkDataSchemaToConvert)(dataSchema), [dataSchema]);
const newData = (0, _react.useMemo)(() => (0, _convertDate.convertDate)(data, toConvert), [data, toConvert]);
const newProps = {
...props,
data: newData || data
};
switch (displayMode) {
case DISPLAY_MODES.TABLE:
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Table.default, {
...newProps
});
case DISPLAY_MODES.FLAT:
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Table.default, {
...newProps,
flat: true
});
case DISPLAY_MODES.TREE:
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_JSONLike.default, {
...newProps
});
case DISPLAY_MODES.LIST:
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_List.default, {
...newProps
});
default:
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_JSONLike.default, {
...newProps
});
}
}
ObjectViewer.displayName = 'ObjectViewer';
ObjectViewer.propTypes = {
displayMode: _propTypes.default.oneOf(Object.keys(DISPLAY_MODES).map(key => DISPLAY_MODES[key])),
tupleLabel: _propTypes.default.string,
rootLabel: _propTypes.default.string,
showTypes: _propTypes.default.bool,
data: _propTypes.default.array,
dataSchema: _propTypes.default.arrayOf(_propTypes.default.object)
};
ObjectViewer.DISPLAY_MODES = DISPLAY_MODES;
ObjectViewer.Table = _Table.default;
ObjectViewer.Tree = _JSONLike.default;
ObjectViewer.List = _List.default;
//# sourceMappingURL=ObjectViewer.component.js.map