Skip to content

Commit 4bd103f

Browse files
committed
chore(data-modeling): remove sidebar state; connect form to the edits directly
1 parent b3b435b commit 4bd103f

File tree

9 files changed

+239
-542
lines changed

9 files changed

+239
-542
lines changed

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

Lines changed: 7 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -3,23 +3,20 @@ import { connect } from 'react-redux';
33
import type { Relationship } from '../services/data-model-storage';
44
import { Button, H3 } from '@mongodb-js/compass-components';
55
import {
6+
createNewRelationship,
67
deleteRelationship,
78
getCurrentDiagramFromState,
89
selectCurrentModel,
10+
selectRelationship,
911
} from '../store/diagram';
1012
import type { DataModelingState } from '../store/reducer';
11-
import {
12-
createNewRelationship,
13-
startRelationshipEdit,
14-
} from '../store/side-panel';
15-
import RelationshipDrawerContent from './relationship-drawer-content';
1613

1714
type CollectionDrawerContentProps = {
1815
namespace: string;
1916
relationships: Relationship[];
2017
shouldShowRelationshipEditingForm?: boolean;
2118
onCreateNewRelationshipClick: (namespace: string) => void;
22-
onEditRelationshipClick: (relationship: Relationship) => void;
19+
onEditRelationshipClick: (rId: string) => void;
2320
onDeleteRelationshipClick: (rId: string) => void;
2421
};
2522

@@ -28,27 +25,22 @@ const CollectionDrawerContent: React.FunctionComponent<
2825
> = ({
2926
namespace,
3027
relationships,
31-
shouldShowRelationshipEditingForm,
3228
onCreateNewRelationshipClick,
3329
onEditRelationshipClick,
3430
onDeleteRelationshipClick,
3531
}) => {
36-
if (shouldShowRelationshipEditingForm) {
37-
return <RelationshipDrawerContent></RelationshipDrawerContent>;
38-
}
39-
4032
return (
4133
<>
4234
<H3>{namespace}</H3>
4335
<ul>
4436
{relationships.map((r) => {
4537
return (
4638
<li key={r.id} data-relationship-id={r.id}>
47-
{r.relationship[0].fields.join(', ')}&nbsp;-&gt;&nbsp;
48-
{r.relationship[1].fields.join(', ')}
39+
{r.relationship[0].fields?.join('.')}&nbsp;-&gt;&nbsp;
40+
{r.relationship[1].fields?.join('.')}
4941
<Button
5042
onClick={() => {
51-
onEditRelationshipClick(r);
43+
onEditRelationshipClick(r.id);
5244
}}
5345
>
5446
Edit
@@ -86,13 +78,11 @@ export default connect(
8678
local.ns === ownProps.namespace || foreign.ns === ownProps.namespace
8779
);
8880
}),
89-
shouldShowRelationshipEditingForm:
90-
state.sidePanel.viewType === 'relationship-editing',
9181
};
9282
},
9383
{
9484
onCreateNewRelationshipClick: createNewRelationship,
95-
onEditRelationshipClick: startRelationshipEdit,
85+
onEditRelationshipClick: selectRelationship,
9686
onDeleteRelationshipClick: deleteRelationship,
9787
}
9888
)(CollectionDrawerContent);

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,12 @@ import NewDiagramFormModal from './new-diagram-form';
66
import type { DataModelingState } from '../store/reducer';
77
import { DiagramProvider } from '@mongodb-js/diagramming';
88
import DiagramEditorSidePanel from './diagram-editor-side-panel';
9-
type DataModelingPluginInitialProps = {
9+
10+
type DataModelingProps = {
1011
showList: boolean;
1112
};
1213

13-
const DataModeling: React.FunctionComponent<DataModelingPluginInitialProps> = ({
14+
const DataModeling: React.FunctionComponent<DataModelingProps> = ({
1415
showList,
1516
}) => {
1617
return (

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

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import React from 'react';
22
import { connect } from 'react-redux';
33
import type { DataModelingState } from '../store/reducer';
4-
import { closeSidePanel } from '../store/side-panel';
54
import {
65
Button,
76
css,
@@ -11,6 +10,7 @@ import {
1110
} from '@mongodb-js/compass-components';
1211
import CollectionDrawerContent from './collection-drawer-content';
1312
import RelationshipDrawerContent from './relationship-drawer-content';
13+
import { closeDrawer } from '../store/diagram';
1414

1515
const containerStyles = css({
1616
width: '400px',
@@ -46,7 +46,11 @@ function DiagmramEditorSidePanel({
4646
></CollectionDrawerContent>
4747
);
4848
} else if (selectedItems.type === 'relationship') {
49-
content = <RelationshipDrawerContent></RelationshipDrawerContent>;
49+
content = (
50+
<RelationshipDrawerContent
51+
relationshipId={selectedItems.id}
52+
></RelationshipDrawerContent>
53+
);
5054
}
5155

5256
return (
@@ -66,6 +70,6 @@ export default connect(
6670
};
6771
},
6872
{
69-
onClose: closeSidePanel,
73+
onClose: closeDrawer,
7074
}
7175
)(DiagmramEditorSidePanel);

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -230,8 +230,8 @@ const DiagramEditor: React.FunctionComponent<{
230230
const [source, target] = relationship.relationship;
231231
return {
232232
id: relationship.id,
233-
source: source.ns,
234-
target: target.ns,
233+
source: source.ns ?? '',
234+
target: target.ns ?? '',
235235
markerStart: source.cardinality === 1 ? 'one' : 'many',
236236
markerEnd: target.cardinality === 1 ? 'one' : 'many',
237237
selected: selectedItem === relationship.id,

0 commit comments

Comments
 (0)