|
1 | | -import { useCallback, useMemo, useState } from "react" |
| 1 | +import { memo, useCallback, useMemo, useState } from "react" |
2 | 2 | import { Trans } from "react-i18next" |
3 | 3 | import { VSCodeCheckbox, VSCodeLink, VSCodeTextField } from "@vscode/webview-ui-toolkit/react" |
4 | 4 |
|
@@ -129,11 +129,6 @@ const AutoApproveMenu = ({ style }: AutoApproveMenuProps) => { |
129 | 129 | setIsExpanded((prev) => !prev) |
130 | 130 | }, []) |
131 | 131 |
|
132 | | - // Disable main checkbox while menu is open or no options selected |
133 | | - const isCheckboxDisabled = useMemo(() => { |
134 | | - return !hasEnabledOptions || isExpanded |
135 | | - }, [hasEnabledOptions, isExpanded]) |
136 | | - |
137 | 132 | const enabledActionsList = Object.entries(toggles) |
138 | 133 | .filter(([_key, value]) => !!value) |
139 | 134 | .map(([key]) => t(autoApproveSettingsConfig[key as AutoApproveSetting].labelKey)) |
@@ -178,7 +173,7 @@ const AutoApproveMenu = ({ style }: AutoApproveMenuProps) => { |
178 | 173 | content={!hasEnabledOptions ? t("chat:autoApprove.selectOptionsFirst") : undefined}> |
179 | 174 | <VSCodeCheckbox |
180 | 175 | checked={effectiveAutoApprovalEnabled} |
181 | | - disabled={isCheckboxDisabled} |
| 176 | + disabled={!hasEnabledOptions} |
182 | 177 | aria-label={ |
183 | 178 | hasEnabledOptions |
184 | 179 | ? t("chat:autoApprove.toggleAriaLabel") |
@@ -290,4 +285,4 @@ const AutoApproveMenu = ({ style }: AutoApproveMenuProps) => { |
290 | 285 | ) |
291 | 286 | } |
292 | 287 |
|
293 | | -export default AutoApproveMenu |
| 288 | +export default memo(AutoApproveMenu) |
0 commit comments