@@ -24,11 +24,21 @@ const ContextDocsForm: React.FC<ContextDocsFormProps> = ({ onSubmit }) => {
24
24
setContextDocs ( updatedDocs ) ;
25
25
} ;
26
26
27
- const handleResourceChange = ( index : number , key : string , value : string ) => {
27
+ const handleResourceChange = ( index : number , oldKey : string , newKey : string , value : string ) => {
28
28
const updatedDocs = [ ...contextDocs ] ;
29
+ const resources = { ...updatedDocs [ index ] . resources } ;
30
+
31
+ // Remove the old key-value pair
32
+ delete resources [ oldKey ] ;
33
+
34
+ // Add the new key-value pair
35
+ if ( newKey !== '' || value !== '' ) {
36
+ resources [ newKey ] = value ;
37
+ }
38
+
29
39
updatedDocs [ index ] = {
30
40
...updatedDocs [ index ] ,
31
- resources : { ... updatedDocs [ index ] . resources , [ key ] : value }
41
+ resources : resources
32
42
} ;
33
43
setContextDocs ( updatedDocs ) ;
34
44
} ;
@@ -66,13 +76,19 @@ const ContextDocsForm: React.FC<ContextDocsFormProps> = ({ onSubmit }) => {
66
76
67
77
const generateContextDocsMd = ( ) => {
68
78
let content = '---\ncontextdocs:\n' ;
69
- contextDocs . forEach ( ( doc ) => {
70
- content += ` - name: ${ doc . name } \n` ;
71
- content += ` relationship: ${ doc . relationship } \n` ;
72
- content += ' resources:\n' ;
73
- Object . entries ( doc . resources ) . forEach ( ( [ key , value ] ) => {
74
- content += ` - ${ key } : ${ value } \n` ;
75
- } ) ;
79
+ const nonEmptyDocs = contextDocs . filter ( doc => doc . name || doc . relationship || Object . keys ( doc . resources ) . length > 0 ) ;
80
+ nonEmptyDocs . forEach ( ( doc ) => {
81
+ if ( doc . name || doc . relationship || Object . keys ( doc . resources ) . length > 0 ) {
82
+ content += ` - name: ${ doc . name } \n` ;
83
+ content += ` relationship: ${ doc . relationship } \n` ;
84
+ const nonEmptyResources = Object . entries ( doc . resources ) . filter ( ( [ key , value ] ) => key && value ) ;
85
+ if ( nonEmptyResources . length > 0 ) {
86
+ content += ' resources:\n' ;
87
+ nonEmptyResources . forEach ( ( [ key , value ] ) => {
88
+ content += ` - ${ key } : ${ value } \n` ;
89
+ } ) ;
90
+ }
91
+ }
76
92
} ) ;
77
93
content += '---\n\n' ;
78
94
content += 'This file contains a list of external dependencies and libraries used in the project. ' ;
@@ -106,13 +122,13 @@ const ContextDocsForm: React.FC<ContextDocsFormProps> = ({ onSubmit }) => {
106
122
< TextField
107
123
label = "Resource Name"
108
124
value = { key }
109
- onChange = { ( e ) => handleResourceChange ( index , e . target . value , value ) }
125
+ onChange = { ( e ) => handleResourceChange ( index , key , e . target . value , value ) }
110
126
sx = { { flexGrow : 1 , mr : 1 } }
111
127
/>
112
128
< TextField
113
129
label = "URL"
114
130
value = { value }
115
- onChange = { ( e ) => handleResourceChange ( index , key , e . target . value ) }
131
+ onChange = { ( e ) => handleResourceChange ( index , key , key , e . target . value ) }
116
132
sx = { { flexGrow : 1 , mr : 1 } }
117
133
/>
118
134
< IconButton onClick = { ( ) => removeResource ( index , key ) } >
0 commit comments