UNPKG

@talend/react-components

Version:
75 lines (73 loc) 2.38 kB
"use strict"; 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