@@ -2,15 +2,13 @@ import { Alert, Badge, Box, ButtonGroup, CircularProgress, Divider, FormControlL
2
2
import { CheckOutlined , Close , CloseOutlined , DeleteOutlined } from "@mui/icons-material" ;
3
3
import { useEffect , useMemo , useState } from "react" ;
4
4
import { CatalogItemRichened } from "../../types/catalog" ;
5
- import Secrets from "../../Secrets" ;
6
5
import { v1 } from "@docker/extension-api-client-types" ;
7
6
import { ASSIGNED_SECRET_PLACEHOLDER , CATALOG_LAYOUT_SX , MCP_POLICY_NAME , UNASSIGNED_SECRET_PLACEHOLDER } from "../../Constants" ;
8
7
import ConfigEditor from "./ConfigEditor" ;
9
8
import { useSecrets } from "../../hooks/useSecrets" ;
10
9
import { useCatalogOperations , useRegistry } from "../../hooks/useCatalog" ;
11
10
import { useConfig } from "../../hooks/useConfig" ;
12
11
13
- // Styles for the tab panel
14
12
interface TabPanelProps {
15
13
children ?: React . ReactNode ;
16
14
index : number ;
@@ -60,18 +58,15 @@ const ConfigurationModal = ({
60
58
const { registerCatalogItem, unregisterCatalogItem } = useCatalogOperations ( client )
61
59
const { configLoading } = useConfig ( client )
62
60
61
+ console . log ( 'catalogItem' , catalogItem )
62
+
63
63
useEffect ( ( ) => {
64
- if ( localSecrets ) return ;
65
64
setLocalSecrets ( catalogItem . secrets . reduce ( ( acc , secret ) => {
66
65
acc [ secret . name ] = secret . assigned ? ASSIGNED_SECRET_PLACEHOLDER : '' ;
67
66
return acc ;
68
67
} , { } as { [ key : string ] : string | undefined } ) ) ;
69
68
} , [ catalogItem . secrets ] ) ;
70
69
71
- if ( catalogItem . name === 'atlassian' ) {
72
- console . log ( localSecrets )
73
- }
74
-
75
70
const toolChipStyle = {
76
71
padding : '2px 8px' ,
77
72
justifyContent : 'center' ,
@@ -113,8 +108,6 @@ const ConfigurationModal = ({
113
108
</ >
114
109
}
115
110
116
- const canRegister = catalogItem . canRegister ;
117
-
118
111
return (
119
112
< Modal
120
113
open = { open }
@@ -145,8 +138,8 @@ const ConfigurationModal = ({
145
138
< Typography sx = { { mt : 2 , maxHeight : '5em' , overflow : 'auto' } } color = "text.secondary" >
146
139
{ catalogItem . description }
147
140
</ Typography >
148
- < Tooltip placement = "right" title = { ! canRegister ? 'You must assign all secrets and configure the item before it can be used.' : '' } >
149
- < FormControlLabel control = { < Switch disabled = { ! canRegister } checked = { catalogItem . registered } onChange = { ( e ) => registerCatalogItem ( catalogItem ) } /> } label = { catalogItem . registered ? 'Disable ' + `${ catalogItem . name } tools` : 'Enable ' + `${ catalogItem . name } tools` } sx = { { mt : 2 } } />
141
+ < Tooltip placement = "right" title = { ! catalogItem . canRegister ? 'You must assign all secrets and configure the item before it can be used.' : '' } >
142
+ < FormControlLabel control = { < Switch disabled = { ! catalogItem . canRegister } checked = { catalogItem . registered } onChange = { ( e ) => catalogItem . registered ? unregisterCatalogItem ( catalogItem ) : registerCatalogItem ( catalogItem ) } /> } label = { catalogItem . registered ? 'Disable ' + `${ catalogItem . name } tools` : 'Enable ' + `${ catalogItem . name } tools` } sx = { { mt : 2 } } />
150
143
</ Tooltip >
151
144
< Divider sx = { { mt : 2 } } />
152
145
< Typography variant = "caption" sx = { { mt : 2 , color : 'text.secondary' } } >
@@ -165,7 +158,7 @@ const ConfigurationModal = ({
165
158
< Tabs value = { tabValue } onChange = { handleTabChange } >
166
159
< Tab label = "Tools" />
167
160
{ /* <Tab label="Prompts" /> */ }
168
- < Tab disabled = { contributesNoConfigOrSecrets } label = { < Badge invisible = { canRegister } sx = { { pl : 1 , pr : 1 } } variant = "dot" badgeContent = { catalogItem . config && catalogItem . config . length > 0 ? 'Secrets' : 'Config' } color = "error" > Config & Secrets </ Badge > } />
161
+ < Tab disabled = { contributesNoConfigOrSecrets } label = { < Badge invisible = { catalogItem . canRegister } sx = { { pl : 1 , pr : 1 } } variant = "dot" badgeContent = { catalogItem . config && catalogItem . config . length > 0 ? 'Secrets' : 'Config' } color = "error" > Config & Secrets </ Badge > } />
169
162
</ Tabs >
170
163
</ Box >
171
164
< TabPanel value = { tabValue } index = { 0 } >
@@ -194,15 +187,13 @@ const ConfigurationModal = ({
194
187
{
195
188
catalogItem . secrets && catalogItem . secrets ?. length > 0 ? (
196
189
catalogItem . secrets . map ( secret => {
197
- const secretEdited = secret . assigned ? localSecrets [ secret . name ] !== ASSIGNED_SECRET_PLACEHOLDER : localSecrets [ secret . name ] !== '' ;
198
- console . log ( secret . name , secretEdited , secret . assigned , localSecrets [ secret . name ] )
190
+ const secretEdited = ( secret . assigned && localSecrets [ secret . name ] !== ASSIGNED_SECRET_PLACEHOLDER ) || ( ! secret . assigned && localSecrets [ secret . name ] !== '' ) ;
199
191
return (
200
192
< Stack key = { secret . name } direction = "row" spacing = { 2 } alignItems = "center" >
201
193
< TextField key = { secret . name } label = { secret . name } value = { localSecrets [ secret . name ] } fullWidth onChange = { ( e ) => {
202
194
setLocalSecrets ( { ...localSecrets , [ secret . name ] : e . target . value } ) ;
203
195
} } type = 'password' />
204
196
{ secret . assigned && ! secretEdited && < IconButton size = "small" color = "error" onClick = { ( ) => {
205
- setLocalSecrets ( { ...localSecrets , [ secret . name ] : '' } ) ;
206
197
mutateSecret . mutateAsync ( { name : secret . name , value : undefined , policies : [ MCP_POLICY_NAME ] } ) ;
207
198
} } >
208
199
< DeleteOutlined />
0 commit comments