diff --git a/package-lock.json b/package-lock.json index 8a7ee9a7593..a27fafd028d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -78770,7 +78770,6 @@ "font-awesome": "^4.7.0", "hadron-app": "^4.22.0", "hadron-app-registry": "^8.11.0", - "hadron-document": "^7.10.0", "hadron-react-buttons": "^5.8.0", "hadron-react-components": "^5.14.0", "html-webpack-plugin": "^3.2.0", @@ -123665,7 +123664,6 @@ "font-awesome": "^4.7.0", "hadron-app": "^4.22.0", "hadron-app-registry": "^8.11.0", - "hadron-document": "^7.10.0", "hadron-react-buttons": "^5.8.0", "hadron-react-components": "^5.14.0", "html-webpack-plugin": "^3.2.0", diff --git a/packages/compass-aggregations/src/components/input-preview/input-preview.jsx b/packages/compass-aggregations/src/components/input-preview/input-preview.jsx index cfb98b59928..087239770bc 100644 --- a/packages/compass-aggregations/src/components/input-preview/input-preview.jsx +++ b/packages/compass-aggregations/src/components/input-preview/input-preview.jsx @@ -1,7 +1,6 @@ import React, { Component } from 'react'; import PropTypes from 'prop-types'; import { Document } from '@mongodb-js/compass-crud'; -import HadronDocument from 'hadron-document'; import LoadingOverlay from '../loading-overlay'; import styles from './input-preview.module.less'; @@ -26,7 +25,7 @@ class InputPreview extends Component { const documents = (this.props.documents || []).map((doc, i) => { return (
- +
); }); diff --git a/packages/compass-aggregations/src/components/stage-preview/stage-preview.jsx b/packages/compass-aggregations/src/components/stage-preview/stage-preview.jsx index 361c33d5777..abda00062b3 100644 --- a/packages/compass-aggregations/src/components/stage-preview/stage-preview.jsx +++ b/packages/compass-aggregations/src/components/stage-preview/stage-preview.jsx @@ -3,7 +3,6 @@ import React, { Component } from 'react'; import PropTypes from 'prop-types'; import { Document } from '@mongodb-js/compass-crud'; import { TextButton } from 'hadron-react-buttons'; -import HadronDocument from 'hadron-document'; import LoadingOverlay from '../loading-overlay'; import { OUT, MERGE } from '../../modules/pipeline'; import decomment from 'decomment'; @@ -211,10 +210,7 @@ class StagePreview extends Component { const documents = this.props.documents.map((doc, i) => { return (
- +
); }); diff --git a/packages/compass-crud/src/components/document.jsx b/packages/compass-crud/src/components/document.jsx index 61f67273c26..c48455eca2f 100644 --- a/packages/compass-crud/src/components/document.jsx +++ b/packages/compass-crud/src/components/document.jsx @@ -1,40 +1,41 @@ -import React from 'react'; +import React, { useMemo } from 'react'; import PropTypes from 'prop-types'; +import HadronDocument from 'hadron-document'; import EditableDocument from './editable-document'; import ReadonlyDocument from './readonly-document'; -/** - * Component for a single document in a list of documents. - */ -class Document extends React.Component { - /** - * Render a single document list item. - * - * @returns {React.Component} The component. - */ - render() { - if (this.props.editable && this.props.isTimeSeries) { - return ( - - ); - } - if (this.props.editable) { - return (); +const Document = (props) => { + const { + editable, + isTimeSeries, + copyToClipboard, + openInsertDocumentDialog, + doc: _doc, + } = props; + + const doc = useMemo(() => { + if (_doc?.isRoot?.()) { + return _doc; } + return new HadronDocument(_doc); + }, [_doc]); + + if (editable && isTimeSeries) { return ( ); } -} -Document.displayName = 'Document'; + if (editable) { + return ; + } + + return ; +}; Document.propTypes = { doc: PropTypes.object.isRequired, diff --git a/packages/compass-schema-validation/package.json b/packages/compass-schema-validation/package.json index 774e98599f9..70562a23735 100644 --- a/packages/compass-schema-validation/package.json +++ b/packages/compass-schema-validation/package.json @@ -82,7 +82,6 @@ "font-awesome": "^4.7.0", "hadron-app": "^4.22.0", "hadron-app-registry": "^8.11.0", - "hadron-document": "^7.10.0", "hadron-react-buttons": "^5.8.0", "hadron-react-components": "^5.14.0", "html-webpack-plugin": "^3.2.0", diff --git a/packages/compass-schema-validation/src/components/document-preview/document-preview.jsx b/packages/compass-schema-validation/src/components/document-preview/document-preview.jsx index 3ace355a72a..a64b809a1fc 100644 --- a/packages/compass-schema-validation/src/components/document-preview/document-preview.jsx +++ b/packages/compass-schema-validation/src/components/document-preview/document-preview.jsx @@ -1,8 +1,6 @@ import React, { Component } from 'react'; import PropTypes from 'prop-types'; -import classnames from 'classnames'; import { Document } from '@mongodb-js/compass-crud'; -import HadronDocument from 'hadron-document'; import styles from './document-preview.module.less'; @@ -37,7 +35,7 @@ class DocumentPreview extends Component {