@@ -194,7 +194,7 @@ const DiagramEditor: React.FunctionComponent<{
194194 onCollectionSelect : ( namespace : string ) => void ;
195195 onRelationshipSelect : ( rId : string ) => void ;
196196 onDiagramBackgroundClicked : ( ) => void ;
197- selectedItem ?: string | null ;
197+ selectedItems : { type : 'relationship' | 'collection' ; id : string } | null ;
198198} > = ( {
199199 diagramLabel,
200200 step,
@@ -206,7 +206,7 @@ const DiagramEditor: React.FunctionComponent<{
206206 onCollectionSelect,
207207 onRelationshipSelect,
208208 onDiagramBackgroundClicked,
209- selectedItem ,
209+ selectedItems ,
210210} ) => {
211211 const { log, mongoLogId } = useLogger ( 'COMPASS-DATA-MODELING-DIAGRAM-EDITOR' ) ;
212212 const isDarkMode = useDarkMode ( ) ;
@@ -234,10 +234,13 @@ const DiagramEditor: React.FunctionComponent<{
234234 target : target . ns ?? '' ,
235235 markerStart : source . cardinality === 1 ? 'one' : 'many' ,
236236 markerEnd : target . cardinality === 1 ? 'one' : 'many' ,
237- selected : selectedItem === relationship . id ,
237+ selected :
238+ ! ! selectedItems &&
239+ selectedItems . type === 'relationship' &&
240+ selectedItems . id === relationship . id ,
238241 } ;
239242 } ) ;
240- } , [ model ?. relationships , selectedItem ] ) ;
243+ } , [ model ?. relationships , selectedItems ] ) ;
241244
242245 const nodes = useMemo < NodeProps [ ] > ( ( ) => {
243246 return ( model ?. collections ?? [ ] ) . map (
@@ -250,10 +253,13 @@ const DiagramEditor: React.FunctionComponent<{
250253 } ,
251254 title : toNS ( coll . ns ) . collection ,
252255 fields : getFieldsFromSchema ( coll . jsonSchema ) ,
253- selected : selectedItem === coll . ns ,
256+ selected :
257+ ! ! selectedItems &&
258+ selectedItems . type === 'collection' &&
259+ selectedItems . id === coll . ns ,
254260 } )
255261 ) ;
256- } , [ model ?. collections , selectedItem ] ) ;
262+ } , [ model ?. collections , selectedItems ] ) ;
257263
258264 const applyInitialLayout = useCallback ( async ( ) => {
259265 try {
@@ -391,9 +397,7 @@ export default connect(
391397 : null ,
392398 editErrors : diagram ?. editErrors ,
393399 diagramLabel : diagram ?. name || 'Schema Preview' ,
394- selectedItem : state . diagram ?. selectedItems
395- ? state . diagram . selectedItems . id
396- : null ,
400+ selectedItems : state . diagram ?. selectedItems ?? null ,
397401 } ;
398402 } ,
399403 {
0 commit comments