Skip to content

Commit 970e7b8

Browse files
committed
pr feedback
1 parent 376cd76 commit 970e7b8

File tree

8 files changed

+77
-70
lines changed

8 files changed

+77
-70
lines changed

packages/compass-data-modeling/src/components/data-modeling.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import SavedDiagramsList from './saved-diagrams-list';
55
import NewDiagramFormModal from './new-diagram-form';
66
import type { DataModelingState } from '../store/reducer';
77
import { DiagramProvider } from '@mongodb-js/diagramming';
8-
import DiagramEditorSidePanel from './diagram-editor-side-panel';
8+
import DiagramEditorSidePanel from './drawer/diagram-editor-side-panel';
99

1010
type DataModelingProps = {
1111
showList: boolean;

packages/compass-data-modeling/src/components/diagram-editor.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ import type { Relationship, StaticModel } from '../services/data-model-storage';
4343
import DiagramEditorToolbar from './diagram-editor-toolbar';
4444
import ExportDiagramModal from './export-diagram-modal';
4545
import { useLogger } from '@mongodb-js/compass-logging/provider';
46-
import { DATA_MODELING_DRAWER_ID } from './diagram-editor-side-panel';
46+
import { DATA_MODELING_DRAWER_ID } from './drawer/diagram-editor-side-panel';
4747

4848
const loadingContainerStyles = css({
4949
width: '100%',

packages/compass-data-modeling/src/components/collection-drawer-content.tsx renamed to packages/compass-data-modeling/src/components/drawer/collection-drawer-content.tsx

Lines changed: 12 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
import React from 'react';
22
import { connect } from 'react-redux';
3-
import type { Relationship } from '../services/data-model-storage';
3+
import type { Relationship } from '../../services/data-model-storage';
44
import {
5-
Accordion,
65
Badge,
76
Button,
87
IconButton,
@@ -19,9 +18,10 @@ import {
1918
getCurrentDiagramFromState,
2019
selectCurrentModel,
2120
selectRelationship,
22-
} from '../store/diagram';
23-
import type { DataModelingState } from '../store/reducer';
24-
import { getRelationshipName } from '../utils';
21+
} from '../../store/diagram';
22+
import type { DataModelingState } from '../../store/reducer';
23+
import { getRelationshipName } from '../../utils';
24+
import DMDrawerSection from './dm-drawer-section';
2525

2626
type CollectionDrawerContentProps = {
2727
namespace: string;
@@ -37,20 +37,6 @@ const formFieldContainerStyles = css({
3737
marginTop: spacing[400],
3838
});
3939

40-
const containerStyles = css({
41-
padding: spacing[400],
42-
});
43-
44-
const accordionTitleStyles = css({
45-
fontSize: spacing[300],
46-
width: '100%',
47-
});
48-
49-
const relationshipsTitleStyles = css({
50-
width: '100%',
51-
display: 'flex',
52-
});
53-
5440
const titleBtnStyles = css({
5541
marginLeft: 'auto',
5642
});
@@ -84,12 +70,8 @@ const CollectionDrawerContent: React.FunctionComponent<
8470
onDeleteRelationshipClick,
8571
}) => {
8672
return (
87-
<div className={containerStyles}>
88-
<Accordion
89-
text="COLLECTION"
90-
defaultOpen={true}
91-
textClassName={accordionTitleStyles}
92-
>
73+
<>
74+
<DMDrawerSection label="COLLECTION">
9375
<FormFieldContainer className={formFieldContainerStyles}>
9476
<TextInput
9577
label="Name"
@@ -98,10 +80,10 @@ const CollectionDrawerContent: React.FunctionComponent<
9880
disabled={true}
9981
/>
10082
</FormFieldContainer>
101-
</Accordion>
83+
</DMDrawerSection>
10284

103-
<Accordion
104-
text={
85+
<DMDrawerSection
86+
label={
10587
<>
10688
RELATIONSHIPS&nbsp;
10789
<Badge>{relationships.length}</Badge>
@@ -116,9 +98,6 @@ const CollectionDrawerContent: React.FunctionComponent<
11698
</Button>
11799
</>
118100
}
119-
defaultOpen={true}
120-
textClassName={accordionTitleStyles}
121-
buttonTextClassName={relationshipsTitleStyles}
122101
>
123102
<div className={relationshipContentStyles}>
124103
{!relationships.length ? (
@@ -161,8 +140,8 @@ const CollectionDrawerContent: React.FunctionComponent<
161140
</ul>
162141
)}
163142
</div>
164-
</Accordion>
165-
</div>
143+
</DMDrawerSection>
144+
</>
166145
);
167146
};
168147

packages/compass-data-modeling/src/components/diagram-editor-side-panel.spec.tsx renamed to packages/compass-data-modeling/src/components/drawer/diagram-editor-side-panel.spec.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,20 +7,20 @@ import {
77
userEvent,
88
within,
99
} from '@mongodb-js/testing-library-compass';
10-
import { DataModelingWorkspaceTab } from '../index';
10+
import { DataModelingWorkspaceTab } from '../../index';
1111
import DiagramEditorSidePanel from './diagram-editor-side-panel';
1212
import {
1313
getCurrentDiagramFromState,
1414
openDiagram,
1515
selectCollection,
1616
selectCurrentModel,
1717
selectRelationship,
18-
} from '../store/diagram';
19-
import dataModel from '../../test/fixtures/data-model-with-relationships.json';
18+
} from '../../store/diagram';
19+
import dataModel from '../../../test/fixtures/data-model-with-relationships.json';
2020
import type {
2121
MongoDBDataModelDescription,
2222
Relationship,
23-
} from '../services/data-model-storage';
23+
} from '../../services/data-model-storage';
2424
import { DrawerAnchor } from '@mongodb-js/compass-components';
2525

2626
async function comboboxSelectItem(

packages/compass-data-modeling/src/components/diagram-editor-side-panel.tsx renamed to packages/compass-data-modeling/src/components/drawer/diagram-editor-side-panel.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
import React from 'react';
22
import { connect } from 'react-redux';
3-
import type { DataModelingState } from '../store/reducer';
3+
import type { DataModelingState } from '../../store/reducer';
44
import { DrawerSection } from '@mongodb-js/compass-components';
55
import CollectionDrawerContent from './collection-drawer-content';
66
import RelationshipDrawerContent from './relationship-drawer-content';
7-
import { closeDrawer } from '../store/diagram';
7+
import { closeDrawer } from '../../store/diagram';
88

99
export const DATA_MODELING_DRAWER_ID = 'data-modeling-drawer';
1010

@@ -13,7 +13,7 @@ type DiagramEditorSidePanelProps = {
1313
onClose: () => void;
1414
};
1515

16-
function DiagmramEditorSidePanel({
16+
function DiagramEditorSidePanel({
1717
selectedItems,
1818
}: DiagramEditorSidePanelProps) {
1919
if (!selectedItems) {
@@ -64,4 +64,4 @@ export default connect(
6464
{
6565
onClose: closeDrawer,
6666
}
67-
)(DiagmramEditorSidePanel);
67+
)(DiagramEditorSidePanel);
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
import {
2+
Accordion,
3+
css,
4+
palette,
5+
spacing,
6+
} from '@mongodb-js/compass-components';
7+
import React from 'react';
8+
9+
const containerStyles = css({
10+
'&:not(:first-child)': {
11+
borderTop: `1px solid ${palette.gray.light2}`,
12+
},
13+
marginLeft: `-${spacing[400]}px`,
14+
marginRight: `-${spacing[400]}px`,
15+
padding: spacing[400],
16+
});
17+
18+
const accordionTitleStyles = css({
19+
fontSize: spacing[300],
20+
width: '100%',
21+
});
22+
23+
const buttonStyles = css({
24+
width: '100%',
25+
display: 'flex',
26+
});
27+
28+
const DMDrawerSection: React.FC<{
29+
label: React.ReactNode;
30+
}> = ({ label, children }) => {
31+
return (
32+
<div className={containerStyles}>
33+
<Accordion
34+
text={label}
35+
defaultOpen={true}
36+
textClassName={accordionTitleStyles}
37+
buttonTextClassName={buttonStyles}
38+
>
39+
{children}
40+
</Accordion>
41+
</div>
42+
);
43+
};
44+
45+
export default DMDrawerSection;

packages/compass-data-modeling/src/components/relationship-drawer-content.tsx renamed to packages/compass-data-modeling/src/components/drawer/relationship-drawer-content.tsx

Lines changed: 9 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,14 @@ import React, {
66
useState,
77
} from 'react';
88
import { connect } from 'react-redux';
9-
import type { DataModelingState } from '../store/reducer';
9+
import type { DataModelingState } from '../../store/reducer';
1010
import {
1111
Button,
1212
Combobox,
1313
FormFieldContainer,
1414
ComboboxOption,
1515
Select,
1616
Option,
17-
Accordion,
1817
TextInput,
1918
spacing,
2019
css,
@@ -27,10 +26,11 @@ import {
2726
getRelationshipForCurrentModel,
2827
selectFieldsForCurrentModel,
2928
updateRelationship,
30-
} from '../store/diagram';
29+
} from '../../store/diagram';
3130
import toNS from 'mongodb-ns';
32-
import type { Relationship } from '../services/data-model-storage';
31+
import type { Relationship } from '../../services/data-model-storage';
3332
import { cloneDeep } from 'lodash';
33+
import DMDrawerSection from './dm-drawer-section';
3434

3535
type RelationshipDrawerContentProps = {
3636
relationshipId: string;
@@ -55,16 +55,6 @@ const formFieldContainerStyles = css({
5555
marginTop: spacing[400],
5656
});
5757

58-
const accordionTitleStyles = css({
59-
fontSize: spacing[300],
60-
width: '100%',
61-
});
62-
63-
const relationshipTitleStyles = css({
64-
width: '100%',
65-
display: 'flex',
66-
});
67-
6858
const titleBtnStyles = css({
6959
marginLeft: 'auto',
7060
});
@@ -194,8 +184,8 @@ const RelationshipDrawerContent: React.FunctionComponent<
194184

195185
return (
196186
<div data-relationship-id={relationshipId}>
197-
<Accordion
198-
text={
187+
<DMDrawerSection
188+
label={
199189
<>
200190
RELATIONSHIP
201191
<Button
@@ -211,9 +201,6 @@ const RelationshipDrawerContent: React.FunctionComponent<
211201
</Button>
212202
</>
213203
}
214-
defaultOpen={true}
215-
textClassName={accordionTitleStyles}
216-
buttonTextClassName={relationshipTitleStyles}
217204
>
218205
<FormFieldContainer className={formFieldContainerStyles}>
219206
<TextInput
@@ -228,13 +215,9 @@ const RelationshipDrawerContent: React.FunctionComponent<
228215
}}
229216
/>
230217
</FormFieldContainer>
231-
</Accordion>
218+
</DMDrawerSection>
232219

233-
<Accordion
234-
text="CONFIGURATION"
235-
defaultOpen={true}
236-
textClassName={accordionTitleStyles}
237-
>
220+
<DMDrawerSection label="CONFIGURATION">
238221
<FormFieldContainer className={formFieldContainerStyles}>
239222
<Combobox
240223
size="small"
@@ -378,7 +361,7 @@ const RelationshipDrawerContent: React.FunctionComponent<
378361
})}
379362
</Select>
380363
</FormFieldContainer>
381-
</Accordion>
364+
</DMDrawerSection>
382365
</div>
383366
);
384367
};

packages/compass-data-modeling/src/utils.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,5 @@ export function getRelationshipName({
88
if (name) return name;
99
const coll1 = relationship[0].ns ? toNS(relationship[0].ns).collection : '';
1010
const coll2 = relationship[1].ns ? toNS(relationship[1].ns).collection : '';
11-
return `${coll1} -> ${coll2}`;
11+
return [coll1, coll2].join(` \u2192 `).trim();
1212
}

0 commit comments

Comments
 (0)