@@ -23,6 +23,7 @@ import {
2323 deleteRelationship ,
2424 removeField ,
2525 renameField ,
26+ changeFieldType ,
2627 toggleCollectionExpanded ,
2728} from '../store/diagram' ;
2829import type {
@@ -60,6 +61,7 @@ import {
6061 relationshipToDiagramEdge ,
6162} from '../utils/nodes-and-edges' ;
6263import toNS from 'mongodb-ns' ;
64+ import { FIELD_TYPES } from '../utils/field-types' ;
6365import { getNamespaceRelationships } from '../utils/utils' ;
6466import { usePreference } from 'compass-preferences-model/provider' ;
6567
@@ -185,6 +187,12 @@ const DiagramContent: React.FunctionComponent<{
185187 newName : string ;
186188 source : 'diagram' ;
187189 } ) => void ;
190+ onChangeFieldType : ( data : {
191+ ns : string ;
192+ fieldPath : FieldPath ;
193+ newTypes : string [ ] ;
194+ source : 'diagram' ;
195+ } ) => void ;
188196 onDiagramBackgroundClicked : ( ) => void ;
189197 onDeleteCollection : ( ns : string ) => void ;
190198 onDeleteRelationship : ( rId : string ) => void ;
@@ -214,6 +222,7 @@ const DiagramContent: React.FunctionComponent<{
214222 onRelationshipSelect,
215223 onFieldSelect,
216224 onRenameField,
225+ onChangeFieldType,
217226 onDiagramBackgroundClicked,
218227 onCreateNewRelationship,
219228 onRelationshipDrawn,
@@ -414,6 +423,18 @@ const DiagramContent: React.FunctionComponent<{
414423 [ onAddFieldToObjectField ]
415424 ) ;
416425
426+ const onFieldTypeChange = useCallback (
427+ ( ns : string , fieldPath : FieldPath , newTypes : string [ ] ) => {
428+ onChangeFieldType ( {
429+ ns,
430+ fieldPath,
431+ newTypes,
432+ source : 'diagram' ,
433+ } ) ;
434+ } ,
435+ [ onChangeFieldType ]
436+ ) ;
437+
417438 const deleteItem = useCallback ( ( ) => {
418439 switch ( selectedItems ?. type ) {
419440 case 'collection' :
@@ -463,11 +484,13 @@ const DiagramContent: React.FunctionComponent<{
463484 onFieldClick,
464485 onFieldNameChange : ( ns , field , newName ) =>
465486 onRenameField ( { ns, field, newName, source : 'diagram' } ) ,
487+ onFieldTypeChange,
466488 onNodeDragStop,
467489 onConnect,
468490 onNodeExpandToggle : isCollapseFlagEnabled
469491 ? handleNodeExpandedToggle
470492 : undefined ,
493+ fieldTypes : FIELD_TYPES ,
471494 } satisfies DiagramProps ) ,
472495 [
473496 isDarkMode ,
@@ -481,6 +504,7 @@ const DiagramContent: React.FunctionComponent<{
481504 onEdgeClick ,
482505 onFieldClick ,
483506 onRenameField ,
507+ onFieldTypeChange ,
484508 onNodeDragStop ,
485509 onConnect ,
486510 handleNodeExpandedToggle ,
@@ -547,6 +571,7 @@ const ConnectedDiagramContent = connect(
547571 onRelationshipSelect : selectRelationship ,
548572 onFieldSelect : selectField ,
549573 onRenameField : renameField ,
574+ onChangeFieldType : changeFieldType ,
550575 onDiagramBackgroundClicked : selectBackground ,
551576 onCreateNewRelationship : createNewRelationship ,
552577 onDeleteCollection : deleteCollection ,
0 commit comments