fix: allow auto-approve checkbox to be toggled at any time (#6061)

Co-authored-by: Eric Wheeler <roo-code@z.ewheeler.org>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
This commit is contained in:
KJ7LNW 2025-07-24 21:41:12 -07:00 committed by GitHub
parent 25857a4809
commit d54e3fcdfc
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -1,4 +1,4 @@
import { useCallback, useMemo, useState } from "react"
import { memo, useCallback, useMemo, useState } from "react"
import { Trans } from "react-i18next"
import { VSCodeCheckbox, VSCodeLink, VSCodeTextField } from "@vscode/webview-ui-toolkit/react"
@ -129,11 +129,6 @@ const AutoApproveMenu = ({ style }: AutoApproveMenuProps) => {
setIsExpanded((prev) => !prev)
}, [])
// Disable main checkbox while menu is open or no options selected
const isCheckboxDisabled = useMemo(() => {
return !hasEnabledOptions || isExpanded
}, [hasEnabledOptions, isExpanded])
const enabledActionsList = Object.entries(toggles)
.filter(([_key, value]) => !!value)
.map(([key]) => t(autoApproveSettingsConfig[key as AutoApproveSetting].labelKey))
@ -178,7 +173,7 @@ const AutoApproveMenu = ({ style }: AutoApproveMenuProps) => {
content={!hasEnabledOptions ? t("chat:autoApprove.selectOptionsFirst") : undefined}>
<VSCodeCheckbox
checked={effectiveAutoApprovalEnabled}
disabled={isCheckboxDisabled}
disabled={!hasEnabledOptions}
aria-label={
hasEnabledOptions
? t("chat:autoApprove.toggleAriaLabel")
@ -290,4 +285,4 @@ const AutoApproveMenu = ({ style }: AutoApproveMenuProps) => {
)
}
export default AutoApproveMenu
export default memo(AutoApproveMenu)