Skip to content

Commit 3b84ba2

Browse files
committed
fix: limit query handling only to DocumentListItem
1 parent 3071d1c commit 3b84ba2

File tree

2 files changed

+31
-25
lines changed

2 files changed

+31
-25
lines changed

packages/compass-crud/src/components/document-list-view-item.tsx

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,13 @@
1-
import React from 'react';
1+
import React, { useCallback } from 'react';
22
import type HadronDocument from 'hadron-document';
33
import { KeylineCard } from '@mongodb-js/compass-components';
44
import Document, { type DocumentProps } from './document';
55
import { useDocumentItemContextMenu } from './use-document-item-context-menu';
66
import { useMergeRefs } from '@mongodb-js/compass-components';
7+
import {
8+
useChangeQueryBarQuery,
9+
useQueryBarQuery,
10+
} from '@mongodb-js/compass-query-bar';
711

812
export type DocumentListViewItemProps = {
913
doc: HadronDocument;
@@ -41,6 +45,19 @@ const DocumentListViewItem: React.FC<DocumentListViewItemProps> = ({
4145
openInsertDocumentDialog,
4246
});
4347

48+
const changeQuery = useChangeQueryBarQuery();
49+
const queryBarQuery = useQueryBarQuery();
50+
51+
const handleAddToQuery = useCallback(
52+
(field: string, value: unknown) => {
53+
changeQuery('toggleDistinctValue', {
54+
field,
55+
value,
56+
});
57+
},
58+
[changeQuery]
59+
);
60+
4461
const mergedRef = useMergeRefs([docRef, contextMenuRef]);
4562

4663
return (
@@ -49,6 +66,8 @@ const DocumentListViewItem: React.FC<DocumentListViewItemProps> = ({
4966
<Document
5067
doc={doc}
5168
key={doc.uuid}
69+
query={queryBarQuery.filter}
70+
onUpdateQuery={handleAddToQuery}
5271
editable={isEditable}
5372
isTimeSeries={isTimeSeries}
5473
copyToClipboard={copyToClipboard}

packages/compass-crud/src/components/document.tsx

Lines changed: 11 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,18 @@
1-
import React, { useMemo, useCallback } from 'react';
1+
import React, { useMemo } from 'react';
22
import PropTypes from 'prop-types';
33
import HadronDocument from 'hadron-document';
44
import type { EditableDocumentProps } from './editable-document';
55
import EditableDocument from './editable-document';
66
import type { ReadonlyDocumentProps } from './readonly-document';
77
import ReadonlyDocument from './readonly-document';
88
import type { BSONObject } from '../stores/crud-store';
9-
import {
10-
useChangeQueryBarQuery,
11-
useQueryBarQuery,
12-
} from '@mongodb-js/compass-query-bar';
139

1410
export type DocumentProps = {
1511
doc: HadronDocument | BSONObject;
1612
editable: boolean;
1713
isTimeSeries?: boolean;
14+
onUpdateQuery?: (field: string, value: unknown) => void;
15+
query?: BSONObject;
1816
} & Omit<EditableDocumentProps, 'doc' | 'expandAll'> &
1917
Pick<ReadonlyDocumentProps, 'copyToClipboard' | 'openInsertDocumentDialog'>;
2018

@@ -25,6 +23,8 @@ const Document = (props: DocumentProps) => {
2523
copyToClipboard,
2624
openInsertDocumentDialog,
2725
doc: _doc,
26+
onUpdateQuery,
27+
query,
2828
} = props;
2929

3030
const doc = useMemo(() => {
@@ -36,19 +36,6 @@ const Document = (props: DocumentProps) => {
3636
return new HadronDocument(_doc as Record<string, unknown>);
3737
}, [_doc]);
3838

39-
const changeQuery = useChangeQueryBarQuery();
40-
const queryBarQuery = useQueryBarQuery();
41-
42-
const handleAddToQuery = useCallback(
43-
(field: string, value: unknown) => {
44-
changeQuery('toggleDistinctValue', {
45-
field,
46-
value,
47-
});
48-
},
49-
[changeQuery]
50-
);
51-
5239
if (editable && isTimeSeries) {
5340
return (
5441
<ReadonlyDocument
@@ -57,8 +44,8 @@ const Document = (props: DocumentProps) => {
5744
openInsertDocumentDialog={(doc, cloned) => {
5845
void openInsertDocumentDialog?.(doc, cloned);
5946
}}
60-
onUpdateQuery={handleAddToQuery}
61-
query={queryBarQuery.filter}
47+
onUpdateQuery={onUpdateQuery}
48+
query={query}
6249
/>
6350
);
6451
}
@@ -68,8 +55,8 @@ const Document = (props: DocumentProps) => {
6855
<EditableDocument
6956
{...props}
7057
doc={doc}
71-
onUpdateQuery={handleAddToQuery}
72-
query={queryBarQuery.filter}
58+
onUpdateQuery={onUpdateQuery}
59+
query={query}
7360
/>
7461
);
7562
}
@@ -78,8 +65,8 @@ const Document = (props: DocumentProps) => {
7865
<ReadonlyDocument
7966
doc={doc}
8067
copyToClipboard={copyToClipboard}
81-
onUpdateQuery={handleAddToQuery}
82-
query={queryBarQuery.filter}
68+
onUpdateQuery={onUpdateQuery}
69+
query={query}
8370
/>
8471
);
8572
};

0 commit comments

Comments
 (0)