@@ -23,6 +23,7 @@ export const AutoApproveDropdown = ({ disabled = false, triggerClassName = "" }:
2323
2424 const {
2525 autoApprovalEnabled,
26+ browserToolEnabled,
2627 setAutoApprovalEnabled,
2728 alwaysApproveResubmit,
2829 setAlwaysAllowReadOnly,
@@ -109,23 +110,31 @@ export const AutoApproveDropdown = ({ disabled = false, triggerClassName = "" }:
109110 )
110111
111112 const handleSelectAll = React . useCallback ( ( ) => {
112- // Enable all options
113- Object . keys ( autoApproveSettingsConfig ) . forEach ( ( key ) => {
113+ // Enable all visible options based on current browser tool setting
114+ const keys = browserToolEnabled
115+ ? Object . keys ( autoApproveSettingsConfig )
116+ : Object . keys ( autoApproveSettingsConfig ) . filter ( ( k ) => k !== "alwaysAllowBrowser" )
117+
118+ keys . forEach ( ( key ) => {
114119 onAutoApproveToggle ( key as AutoApproveSetting , true )
115120 } )
116121 // Enable master auto-approval
117122 if ( ! autoApprovalEnabled ) {
118123 setAutoApprovalEnabled ( true )
119124 vscode . postMessage ( { type : "autoApprovalEnabled" , bool : true } )
120125 }
121- } , [ onAutoApproveToggle , autoApprovalEnabled , setAutoApprovalEnabled ] )
126+ } , [ onAutoApproveToggle , autoApprovalEnabled , setAutoApprovalEnabled , browserToolEnabled ] )
122127
123128 const handleSelectNone = React . useCallback ( ( ) => {
124- // Disable all options
125- Object . keys ( autoApproveSettingsConfig ) . forEach ( ( key ) => {
129+ // Disable all visible options based on current browser tool setting
130+ const keys = browserToolEnabled
131+ ? Object . keys ( autoApproveSettingsConfig )
132+ : Object . keys ( autoApproveSettingsConfig ) . filter ( ( k ) => k !== "alwaysAllowBrowser" )
133+
134+ keys . forEach ( ( key ) => {
126135 onAutoApproveToggle ( key as AutoApproveSetting , false )
127136 } )
128- } , [ onAutoApproveToggle ] )
137+ } , [ onAutoApproveToggle , browserToolEnabled ] )
129138
130139 const handleOpenSettings = React . useCallback (
131140 ( ) =>
@@ -143,21 +152,29 @@ export const AutoApproveDropdown = ({ disabled = false, triggerClassName = "" }:
143152 // Calculate enabled and total counts as separate properties
144153 const settingsArray = Object . values ( autoApproveSettingsConfig )
145154
155+ // Filter out Browser toggle when browser tool is disabled
156+ const visibleSettingsArray = React . useMemo (
157+ ( ) => settingsArray . filter ( ( s ) => browserToolEnabled || s . key !== "alwaysAllowBrowser" ) ,
158+ [ settingsArray , browserToolEnabled ] ,
159+ )
160+
161+ const visibleKeys = React . useMemo ( ( ) => visibleSettingsArray . map ( ( s ) => s . key ) , [ visibleSettingsArray ] )
162+
146163 const enabledCount = React . useMemo ( ( ) => {
147- return Object . values ( toggles ) . filter ( ( value ) => ! ! value ) . length
148- } , [ toggles ] )
164+ return visibleKeys . filter ( ( key ) => ! ! toggles [ key as keyof typeof toggles ] ) . length
165+ } , [ visibleKeys , toggles ] )
149166
150167 const totalCount = React . useMemo ( ( ) => {
151- return Object . keys ( toggles ) . length
152- } , [ toggles ] )
168+ return visibleKeys . length
169+ } , [ visibleKeys ] )
153170
154171 const { effectiveAutoApprovalEnabled } = useAutoApprovalState ( toggles , autoApprovalEnabled )
155172
156173 const tooltipText =
157174 ! effectiveAutoApprovalEnabled || enabledCount === 0
158175 ? t ( "chat:autoApprove.tooltipManage" )
159176 : t ( "chat:autoApprove.tooltipStatus" , {
160- toggles : settingsArray
177+ toggles : visibleSettingsArray
161178 . filter ( ( setting ) => toggles [ setting . key ] )
162179 . map ( ( setting ) => t ( setting . labelKey ) )
163180 . join ( ", " ) ,
@@ -216,7 +233,7 @@ export const AutoApproveDropdown = ({ disabled = false, triggerClassName = "" }:
216233 </ p >
217234 </ div >
218235 < div className = "grid grid-cols-1 min-[340px]:grid-cols-2 gap-x-2 gap-y-2 p-3" >
219- { settingsArray . map ( ( { key, labelKey, descriptionKey, icon } ) => {
236+ { visibleSettingsArray . map ( ( { key, labelKey, descriptionKey, icon } ) => {
220237 const isEnabled = toggles [ key ]
221238 return (
222239 < StandardTooltip key = { key } content = { t ( descriptionKey ) } >
0 commit comments